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
”。