使用referer指令配置Nginx服務(wù)器來(lái)防止圖片盜鏈
由于nginx不支持.htaccess,所以,從這個(gè)方面直接去防止是行不通的,我們要通過(guò)修改配置文件來(lái)解決。
首先,我們找到需要防盜鏈的域名的conf文件,路徑:/usr/local/nginx/conf/vhost/,比如guance.com.conf。先備份下原文件,然后找到下面的部分:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; }
將它修改為:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { valid_referers none blocked www.dbjr.com.cn jb51.net; if ($invalid_referer) { rewrite ^/ http://www.dbjr.com.cn/404.jpg; #return 404; } expires 30d; }
上面的內(nèi)容,大家請(qǐng)根據(jù)個(gè)人的情況酌情修改,我這里做基本的解釋?zhuān)?br />
第一行g(shù)if|jpg|jpeg|png……這些是您需要防止盜鏈的文件類(lèi)型,您可以補(bǔ)充一些后綴類(lèi)型;
第三行是你的網(wǎng)站的域名,就是說(shuō)放行的域名,如果有多個(gè),請(qǐng)?zhí)砑樱⒁饪崭瘢?br />
第五行是給盜鏈看到的圖片,返回一個(gè)404.jpg,這個(gè)圖片源地址是要可以外鏈的哦,不然,別人看到的也就一個(gè)XX。
完成之后保存,上傳到原位置覆蓋,之后重啟下lnmp使之生效。
/root/lnmp restart
referer指令簡(jiǎn)介
nginx模塊ngx_http_referer_module通常用于阻擋來(lái)源非法的域名請(qǐng)求.我們應(yīng)該牢記,偽裝Referer頭部是非常簡(jiǎn)單的事情,所以這個(gè)模塊只能用于阻止大部分非法請(qǐng)求.我們應(yīng)該記住,有些合法的請(qǐng)求是不會(huì)帶referer來(lái)源頭部的,所以有時(shí)候不要拒絕來(lái)源頭部(referer)為空的請(qǐng)求.
語(yǔ)法: referer_hash_bucket_size size;
默認(rèn)值: referer_hash_bucket_size 64;
配置段: server, location
這個(gè)指令在nginx 1.0.5中開(kāi)始出現(xiàn).
Sets the bucket size for the valid referers hash tables. The details of setting up hash tables are provided in a separate document.
語(yǔ)法: referer_hash_max_size size;
默認(rèn)值: referer_hash_max_size 2048;
配置段: server, location
這個(gè)指令在nginx 1.0.5中開(kāi)始出現(xiàn).
Sets the maximum size of the valid referers hash tables. The details of setting up hash tables are provided in a separate document.
語(yǔ)法: valid_referers none | blocked | server_names | string ...;
默認(rèn)值: —
配置段: server, location
指定合法的來(lái)源'referer', 他決定了內(nèi)置變量$invalid_referer的值,如果referer頭部包含在這個(gè)合法網(wǎng)址里面,這個(gè)變量被設(shè)置為0,否則設(shè)置為1.記住,不區(qū)分大小寫(xiě)的.
參數(shù)說(shuō)明
none
“Referer” 來(lái)源頭部為空的情況
blocked
“Referer”來(lái)源頭部不為空,但是里面的值被代理或者防火墻刪除了,這些值都不以http://或者h(yuǎn)ttps://開(kāi)頭.
server_names
“Referer”來(lái)源頭部包含當(dāng)前的server_names(當(dāng)前域名)
arbitrary string
任意字符串,定義服務(wù)器名或者可選的URI前綴.主機(jī)名可以使用*開(kāi)頭或者結(jié)尾,在檢測(cè)來(lái)源頭部這個(gè)過(guò)程中,來(lái)源域名中的主機(jī)端口將會(huì)被忽略掉
regular expression
正則表達(dá)式,~表示排除https://或http://開(kāi)頭的字符串.
最后
圖片使用來(lái)源頭部做防盜鏈?zhǔn)亲詈侠淼? 簡(jiǎn)單、實(shí)用。但是沒(méi)有辦法防采集。
相關(guān)文章
詳解Nginx的核心配置模塊中對(duì)于請(qǐng)求體的接受流程
這篇文章主要介紹了詳解Nginx的核心配置模塊中對(duì)于請(qǐng)求體的接受流程,包括其丟棄請(qǐng)求的過(guò)程,需要的朋友可以參考下2015-12-12nginx+lua+redis防刷和限流的實(shí)現(xiàn)
本文將介紹如何使用nginx lua redis實(shí)現(xiàn)防刷和限流,首先,我們將了解防刷和限流的基本概念和必要性,然后,我們將詳細(xì)介紹如何使用nginx lua redis實(shí)現(xiàn)防刷和限流,感興趣的可以了解一下2023-09-09三步配置輕量級(jí)服務(wù)器nginx小結(jié)
Nginx是一個(gè)安裝非常的簡(jiǎn)單 , 配置文件非常簡(jiǎn)潔,本文就來(lái)介紹一下三步配置輕量級(jí)服務(wù)器nginx,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08NGINX阻止指定ip的請(qǐng)求問(wèn)題及解決方案
web頁(yè)面做了一個(gè)功能,在websocket請(qǐng)求失敗的情況,會(huì)定時(shí)向服務(wù)端進(jìn)行重試進(jìn)行建立連接,這篇文章給大家介紹NGINX阻止指定ip的請(qǐng)求問(wèn)題及解決方案,感興趣的朋友一起看看吧2024-02-02Windows系統(tǒng)下Nginx服務(wù)器的基本安裝和配置方法介紹
這篇文章主要介紹了Windows系統(tǒng)下Nginx服務(wù)器的基本安裝和配置方法,文中給出了一個(gè)配置文件的實(shí)例并作出了些說(shuō)明,需要的朋友可以參考下2015-12-12