Path: blob/main/xml/cn/docs/http/ngx_http_referer_module.xml
1 views
<?xml version="1.0"?>12<!--3Copyright (C) Igor Sysoev4Copyright (C) Nginx, Inc.5-->67<!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">89<module name="ngx_http_referer_module模块"10link="/cn/docs/http/ngx_http_referer_module.html"11lang="cn"12translator="nigelzeng"13rev="1">1415<section id="summary">1617<para>18<literal>ngx_http_referer_module</literal>模块允许拦截<header>Referer</header>请求头中含有非法值的请求,阻止它们访问站点。19需要注意的是伪造一个有效的<header>Referer</header>请求头是相当容易的,20因此这个模块的预期目的不在于彻底地阻止这些非法请求,而是为了阻止由正常浏览器发出的大规模此类请求。21还有一点需要注意,即使正常浏览器发送的合法请求,也可能没有<header>Referer</header>请求头。22</para>2324</section>252627<section id="example" name="配置实例">2829<para>30<example>31valid_referers none blocked server_names32*.example.com example.* www.example.org/galleries/33~\.google\.;3435if ($invalid_referer) {36return 403;37}38</example>39</para>4041</section>424344<section id="directives" name="指令">4546<directive name="referer_hash_bucket_size">47<syntax><value>size</value></syntax>48<default>64</default>49<context>server</context>50<context>location</context>51<appeared-in>1.0.5</appeared-in>5253<para>54设置用来存储有效referer的哈希表的表项长度。55详细的情况参见<link doc="../hash.xml">哈希表设置</link>。56</para>5758</directive>596061<directive name="referer_hash_max_size">62<syntax><value>size</value></syntax>63<default>2048</default>64<context>server</context>65<context>location</context>66<appeared-in>1.0.5</appeared-in>6768<para>69设置用来存储有效referer的哈希表最大<value>桶容量</value>。70详细的情况参见<link doc="../hash.xml">哈希表设置</link>。71</para>7273</directive>747576<directive name="valid_referers">77<syntax>78<literal>none</literal> |79<literal>blocked</literal> |80<literal>server_names</literal> |81<value>string</value>82...</syntax>83<default/>84<context>server</context>85<context>location</context>8687<para>88<header>Referer</header>请求头为指定值时,内嵌变量<var>$invalid_referer</var>被设置为空字符串,89否则这个变量会被置成“<literal>1</literal>”。查找匹配时不区分大小写。90</para>9192<para>93该指令的参数可以为下面的内容:94<list type="tag">9596<tag-name><literal>none</literal></tag-name>97<tag-desc>98缺少<header>Referer</header>请求头;99</tag-desc>100101<tag-name><literal>blocked</literal></tag-name>102<tag-desc>103<header>Referer</header> 请求头存在,但是它的值被防火墙或者代理服务器删除;104这些值都不以“<literal>http://</literal>” 或者 “<literal>https://</literal>”字符串作为开头;105</tag-desc>106107<tag-name><literal>server_names</literal></tag-name>108<tag-desc>109<header>Referer</header> 请求头包含某个虚拟主机名;110</tag-desc>111112<tag-name>任意字符串</tag-name>113<tag-desc>114定义一个服务器名和可选的URI前缀。服务器名允许在开头或结尾使用“<literal>*</literal>”符号。115当nginx检查时,<header>Referer</header>请求头里的服务器端口将被忽略。116</tag-desc>117118<tag-name>正则表达式</tag-name>119<tag-desc>120必须以“<literal>~</literal>”符号作为开头。121需要注意的是表达式会从“<literal>http://</literal>”或者“<literal>https://</literal>”之后的文本开始匹配。122</tag-desc>123124</list>125</para>126127<para>128实例:129<example>130valid_referers none blocked server_names131*.example.com example.* www.example.org/galleries/132~\.google\.;133</example>134</para>135136</directive>137138</section>139140</module>141142143