1、Nginx Referer模塊
nginx模塊ngx_http_referer_module通常用于阻擋來源非法的域名請求。當(dāng)一個請求頭的Referer字段中包含一些非正確的字段,這個模塊可以禁止這個請求訪問站點。構(gòu)造Referer的請求很容易實現(xiàn),所以使用這個模塊并不能100%的阻止這些請求。
2、valid_referers 指令
語法: valid_referers none | blocked | server_names | string … ;
配置段: server, location
指定合法的來源'referer', 他決定了內(nèi)置變量$invalid_referer的值,如果referer頭部包含在這個合法網(wǎng)址里面,這個變量被設(shè)置為0,否則設(shè)置為1. 需要注意的是:這里并不區(qū)分大小寫的.
參數(shù)說明:
none:請求頭缺少Referer字段,即空Referer
blocked:請求頭Referer字段不為空(即存在Referer),但是值被代理或者防火墻刪除了,這些值不以“http://”或“https://”開頭,通俗點說就是允許“http://”或"https//"以外的請求。
server_names:Referer請求頭白名單。
arbitrary string:任意字符串,定義服務(wù)器名稱或可選的URI前綴,主機名可以使用*號開頭或結(jié)尾,Referer字段中的服務(wù)器端口將被忽略掉。
regular expression:正則表達(dá)式,以“~”開頭,在“http://”或"https://"之后的文本匹配。文章來源:http://www.zghlxwxcb.cn/news/detail-647077.html
server {
listen 80 ;
server_name img.abc.com;
# 必須使用域名訪問
if ($host != 'img.abc.com') {
return 403 ;
}
# 攔截非法referer
valid_referers none www.abc.com img.abc.com ;
if ($invalid_referer) {
return 403 ;
#rewrite ^.*$ http://www.baidu.com/403.jpg;
}
charset utf-8;
location / {
…………
}
}
上面配置合法的Referer為? www.abc.com? /? img.abc.com? 和?無Referer(瀏覽器直接訪問,就沒有Referer)???;?其他非法Referer請求過來時,?$invalid_referer?值為1 ,?就return? 403 ,?或者重定向到一個403圖片。文章來源地址http://www.zghlxwxcb.cn/news/detail-647077.html
到了這里,關(guān)于nginx配置攔截訪問域名的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!