在线文档教程
Nginx

ngx_http_referer_module

ngx_http_referer_module模块

  • 示例配置

  • 指令

  • referer_hash_bucket_size

  • referer_hash_max_size

  • valid_referers

  • Embedded Variables

ngx_http_referer_module模块用于在“Referer”标题字段中阻止对具有无效值的请求访问站点。应该记住,制作具有适当“Referer”字段值的请求非常容易,因此本模块的预期目的不是彻底屏蔽这些请求,而是阻止常规浏览器发送的大量请求。还应该考虑到即使对于有效请求,常规浏览器也不能发送“Referer”字段。

示例配置

valid_referers none blocked server_names *.example.com example.* www.example.org/galleries/ ~\.google\.; if ($invalid_referer) { return 403; }

指令

句法:referer_hash_bucket_size大小;
默认:referer_hash_bucket_size 64;
语境:服务器,位置

设置有效查阅者散列表的存储桶大小。设置散列表的细节在单独的文档中提供。

句法:referer_hash_max_size大小;
默认:referer_hash_max_size 2048;
语境:服务器,位置

设置有效的引用器散列表的最大大小。 设置散列表的细节在单独的文档中提供。

句法: valid_referers none | blocked | server_names | string ...;
默认:
语境:服务器,位置

指定将导致嵌入$invalid_referer变量设置为空字符串的“Referer”请求标头字段值。否则,该变量将被设置为“ 1”。搜索匹配不区分大小写。

参数可以如下所示:

none请求头中缺少“Referer”字段; blocked“Referer”字段出现在请求头中,但其值已被防火墙或代理服务器删除; 这些值是不以“ http://”或“ https://” 开头的字符串; server_names“Referer”请求标题字段包含一个服务器名称; 任意字符串定义一个服务器名称和一个可选的URI前缀。服务器名称可以*在开头或结尾处具有“ ”。在检查期间,“Referer”字段中的服务器端口被忽略; 正则表达式的第一个符号应该是“ ~”。应该注意的是,表达式将与在“ http://”或“ https://” 之后开始的文本匹配。

例:

valid_referers none blocked server_names *.example.com example.* www.example.org/galleries/ ~\.google\.;

嵌入式变量

$invalid_referer:如果“Referer”请求标头字段值被认为有效,则为空字符串,否则为“ 1”。