ngx_http_referer_module模塊

翻譯內容可能已經過舊。你可以通過 英文版本查看最近的更新。
配置實例
指令
     referer_hash_bucket_size
     referer_hash_max_size
     valid_referers

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的哈希表的表項長度。詳細的情況參見哈希表設置

語法: referer_hash_max_size size;
默認值:
referer_hash_max_size 2048;
上下文: server, location

這個指令出現在版本 1.0.5.

設置用來存儲有效referer的哈希表最大桶容量。詳細的情況參見哈希表設置

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

“Referer”請求頭爲指定值時,內嵌變量$invalid_referer被設置爲空字符串,否則這個變量會被置成“1”。查找匹配時不區分大小寫。

該指令的參數可以爲下面的內容:

none
缺少“Referer”請求頭;
blocked
“Referer” 請求頭存在,但是它的值被防火牆或者代理服務器刪除;這些值都不以“http://” 或者 “https://”字符串作爲開頭;
server_names
“Referer” 請求頭包含某個虛擬主機名;
任意字符串
定義一個服務器名和可選的URI前綴。服務器名允許在開頭或結尾使用“*”符號。當nginx檢查時,“Referer”請求頭裏的服務器端口將被忽略。
正則表達式
必須以“~”符號作爲開頭。需要注意的是表達式會從“http://”或者“https://”之後的文本開始匹配。

實例:

valid_referers none blocked server_names
               *.example.com example.* www.example.org/galleries/
               ~\.google\.;
轉自:http://nginx.org/cn/docs/http/ngx_http_referer_module.html#example
發佈了79 篇原創文章 · 獲贊 38 · 訪問量 144萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章