Nginx referer模块

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';
}
}

添加评论

电子邮件地址不会被公开。 必填项已用*标注