模块 ngx_http_referer_module

referer_hash_bucket_size
referer_hash_max_size
valid_referers
嵌入变量的配置
Directives
示例

该模块用于阻止 访问站点以获取 “Referer” 标头字段。 应该记住,用适当的 “Referer” 字段值非常简单,因此预期的 这个模块的目的不是彻底阻止此类请求,而是阻止 常规浏览器发送的大量请求。 还应考虑到常规浏览器可能会 即使对于有效请求,也不会发送 “Referer” 字段。ngx_http_referer_module

示例配置

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

if ($invalid_referer) {
    return 403;
}

Directives

语法: referer_hash_bucket_size size;
默认值:
referer_hash_bucket_size 64;
上下文: server,location

该Directives出现在版本 1.0.5 中。

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

语法: referer_hash_max_size size;
默认值:
referer_hash_max_size 2048;
上下文: server,location

该Directives出现在版本 1.0.5 中。

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

语法: valid_referers none | blocked | server_names | string ...;
默认值:
上下文: server,location

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

参数如下:

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” 请求标头字段为空字符串 value 被视为有效,否则 “”。1