模块 ngx_http_referer_module

Example Configuration
Directives
     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 size;
默认:
referer_hash_bucket_size 64;
语境: server,location

该指令出现在 1.0.5 版本中。

设置有效引用者哈希表的存储桶大小。设置哈希表的详细信息在单独的 文档中提供。

句法: referer_hash_max_size size;
默认:
referer_hash_max_size 2048;
语境: server,location

该指令出现在 1.0.5 版本中。

size设置有效引用者哈希表的 最大值。设置哈希表的详细信息在单独的 文档中提供。

句法: valid_referers none | blocked | server_names | string ...;
默认:
语境: server,location

指定“Referer”请求标头字段值,该值将导致嵌入$invalid_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”。