On this page
Module ngx_http_referer_module
ngx_http_referer_module
模块用于阻止对“引用”标题字段中具有无效值的请求的站点访问。应该记住,使用适当的“ Referer”字段值来构造请求非常容易,因此该模块的预期目的不是彻底阻止此类请求,而是阻止常规浏览器发送的大量请求。还应考虑到常规浏览器甚至对于有效请求也可能不会发送“ Referer”字段。
Example Configuration
valid_referers none blocked server_names
*.example.com example.* www.example.org/galleries/
~\.google\.;
if ($invalid_referer) {
return 403;
}
Directives
Syntax: | referer_hash_bucket_size size; |
Default: | referer_hash_bucket_size 64; |
Context: | server , location |
该指令出现在 1.0.5 版中。
设置有效引荐来源哈希表的存储桶大小。设置哈希表的详细信息在单独的document中提供。
Syntax: | referer_hash_max_size size; |
Default: | referer_hash_max_size 2048; |
Context: | server , location |
该指令出现在 1.0.5 版中。
设置有效的参照哈希表的最大size
。设置哈希表的详细信息在单独的document中提供。
Syntax: | valid_referers none | blocked | server_names | string ...; |
Default: | — |
Context: | server , location |
指定将导致嵌入式$invalid_referer
变量设置为空字符串的“ Referer”请求 Headers 字段值。否则,变量将设置为“ 1
”。搜索匹配项不区分大小写。
参数可以如下:
none
- 请求 Headers 中缺少“ Referer”字段;
blocked
- 请求 Headers 中存在“ Referer”字段,但其值已被防火墙或代理服务器删除;这些值是不以“
http://
”或“https://
”开头的字符串;
- 请求 Headers 中存在“ Referer”字段,但其值已被防火墙或代理服务器删除;这些值是不以“
server_names
- “ Referer”请求 Headers 字段包含服务器名称之一;
arbitrary string
- 定义服务器名称和可选的 URI 前缀。服务器名称的开头或结尾可以带有“
*
”。在检查过程中,“ Referer”字段中的服务器端口将被忽略;
- 定义服务器名称和可选的 URI 前缀。服务器名称的开头或结尾可以带有“
regular expression
- 第一个符号应为“
~
”。应该注意的是,表达式将与“http://
”或“https://
”之后的文本匹配。
- 第一个符号应为“
Example:
valid_referers none blocked server_names
*.example.com example.* www.example.org/galleries/
~\.google\.;
Embedded Variables
$invalid_referer
- 如果“ Referer”请求 Headers 字段的值被认为是valid,则为空字符串,否则为“
1
”。