Nginx referer模块
Posted On 2019年5月19日 By liang
referer模块默认已编译进Nginx , 通过 –without-http_referer_module禁用。
referer模块的指令
语法:valid_referers none| blocked | server_names |string ...;
默认值:---
上下文:server, location
语法:referer_hash_bucket_size size;
默认值:referer_hash_bucket_size 64
上下文:server, location
语法:referer_hash_max_size size;
默认值:referer_hash_max_size 2048
上下文:server, location
注释:
- valid_referers 指令可以同时携带多个参数,表示多个referer头部都生效。
- none:允许确实referer头部的请求访问。
- block:允许referer头部没有对应的值的请求访问。
- server_names:若referer中站点域名与server_name中本机域名某个匹配,则允许该请求访问。
- 表示域名及URL的字符串,对域名可在前缀或者后缀中含有*通配符:若referer头部的值匹配字符串后,则允许访问。
- 正则表达式:若referer头部的值匹配正则表达式,则允许访问
invalid_referer变量
- 允许访问时变量值为空
- 不允许访问时变量值为1
配置示例:
server {
server_name localhost;
error_log logs/error.log info;
root html;
location /{
valid_referers none blocked server_names *.pmworker.cn www.pmworker.cn/shouka.html ~\music\;
if($invalid_referer){
return 403;
}
return 200 'valid';
}
}