Nginx配置防盜鏈保護(hù)靜態(tài)資源的詳細(xì)教程
1. 防盜鏈的原理
防盜鏈通過(guò)檢查 HTTP 請(qǐng)求頭中的 Referer 字段來(lái)判斷請(qǐng)求來(lái)源:
- 如果請(qǐng)求來(lái)源是允許的域名,Nginx 會(huì)正常返回資源。
- 如果請(qǐng)求來(lái)源是未授權(quán)的域名(或者沒(méi)有
Referer字段),Nginx 會(huì)拒絕請(qǐng)求(返回 403 錯(cuò)誤)。
常見(jiàn)場(chǎng)景:
- 保護(hù)圖片、視頻等靜態(tài)資源不被其他網(wǎng)站直接引用。
- 限制文件下載資源只能通過(guò)特定頁(yè)面訪(fǎng)問(wèn)。
2. 配置步驟
(1) 編輯 Nginx 配置文件
打開(kāi) Nginx 配置文件:
vim /usr/local/nginx/conf/nginx.conf
在 server 塊中添加以下內(nèi)容:
location ~* \.(gif|jpg|jpeg|png|bmp|ico)$ {
valid_referers none blocked yourdomain.com *.yourdomain.com;
if ($invalid_referer) {
return 403;
}
}
配置說(shuō)明:
location ~* \.(gif|jpg|jpeg|png|bmp|ico)$:- 匹配圖片文件的擴(kuò)展名(如
.gif、.jpg等)。 ~*表示正則表達(dá)式匹配,并且忽略大小寫(xiě)。
- 匹配圖片文件的擴(kuò)展名(如
valid_referers none blocked yourdomain.com *.yourdomain.com;:
none:允許沒(méi)有Referer字段的請(qǐng)求(如直接輸入 URL 的訪(fǎng)問(wèn))。blocked:允許被代理或防火墻隱藏了Referer的請(qǐng)求。yourdomain.com:允許來(lái)自yourdomain.com的請(qǐng)求。*.yourdomain.com:允許來(lái)自yourdomain.com的所有子域名的請(qǐng)求。
if ($invalid_referer):
- 如果請(qǐng)求的來(lái)源不符合
valid_referers的規(guī)則,則變量$invalid_referer為true。 return 403;:- 返回 HTTP 狀態(tài)碼 403(禁止訪(fǎng)問(wèn))。
(2) 測(cè)試配置文件語(yǔ)法
在保存配置文件后,測(cè)試配置是否正確:
nginx -t
預(yù)期輸出:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
如果有錯(cuò)誤,檢查配置文件中的語(yǔ)法問(wèn)題并修復(fù)。
(3) 重啟 Nginx 服務(wù)
重啟 Nginx 使配置生效:
systemctl restart nginx
3. 創(chuàng)建一個(gè)簡(jiǎn)單的測(cè)試圖片
即使你的網(wǎng)頁(yè)沒(méi)有圖片資源,你可以手動(dòng)添加一個(gè)測(cè)試圖片文件到 Nginx 的根目錄,方便驗(yàn)證防盜鏈功能。
步驟
- 創(chuàng)建一個(gè)測(cè)試圖片文件: 在 Nginx 的根目錄下(通常是
/usr/share/nginx/html/或/var/www/html/),創(chuàng)建一個(gè)簡(jiǎn)單的圖片文件:
echo "Test Image" > /usr/share/nginx/html/test.jpg
- 訪(fǎng)問(wèn)測(cè)試圖片:
- 在瀏覽器中輸入圖片的 URL(如
http://yourdomain.com/test.jpg)。 - 確保圖片可以被正常訪(fǎng)問(wèn)。
- 在瀏覽器中輸入圖片的 URL(如
- 從其他來(lái)源測(cè)試引用:
- 在其他域名的網(wǎng)頁(yè)中嵌入這個(gè)圖片:
<img src="http://yourdomain.com/test.jpg" />
- 或者用
curl模擬請(qǐng)求:
curl -e "http://otherdomain.com" http://yourdomain.com/test.jpg //Nginx 應(yīng)該返回 403 錯(cuò)誤。 curl -e "http://smqnz.com" 192.168.14.111/123.png //可以訪(fǎng)問(wèn)
如果配置正確,

總結(jié):
通過(guò)配置防盜鏈,可以有效保護(hù)網(wǎng)站的靜態(tài)資源,防止帶寬被惡意消耗。在實(shí)際應(yīng)用中,可以根據(jù)業(yè)務(wù)需求調(diào)整匹配規(guī)則和允許的域名,進(jìn)一步優(yōu)化配置。
以上就是Nginx配置防盜鏈保護(hù)靜態(tài)資源的詳細(xì)教程的詳細(xì)內(nèi)容,更多關(guān)于Nginx配置防盜鏈的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Nginx/Apache服務(wù)器SSL證書(shū)自動(dòng)化部署與續(xù)期實(shí)戰(zhàn)教程
- linux使用nginx部署ssl證書(shū),將http升級(jí)為https實(shí)現(xiàn)方式
- 阿里云ssl證書(shū)如何通過(guò)Nginx部署到服務(wù)器
- Windows環(huán)境下Nginx?服務(wù)器?SSL?證書(shū)安裝部署操作過(guò)程
- Nginx部署SSL證書(shū)的過(guò)程
- Nginx下SSL證書(shū)安裝部署步驟介紹
- Nginx配置SSL證書(shū)部署HTTPS網(wǎng)站的方法(頒發(fā)證書(shū))
- CentOS 6.7下nginx SSL證書(shū)部署的方法
- Nginx實(shí)現(xiàn)防盜鏈的多種方式
- Nginx中配置防盜鏈的方法實(shí)現(xiàn)
- nginx實(shí)現(xiàn)重寫(xiě)功能和防盜鏈功能
- 使用Nginx為自己的網(wǎng)站資源加上防盜鏈保護(hù)實(shí)現(xiàn)
- Nginx進(jìn)階配置實(shí)現(xiàn)SSL證書(shū)部署與資源防盜鏈實(shí)操
相關(guān)文章
nginx配置proxy_pass代理轉(zhuǎn)發(fā)時(shí)報(bào)404問(wèn)題
這篇文章主要介紹了nginx配置proxy_pass代理轉(zhuǎn)發(fā)時(shí)報(bào)404問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
Nginx服務(wù)器中強(qiáng)制使用緩存的配置及緩存優(yōu)先級(jí)的講解
這篇文章主要介紹了Nginx服務(wù)器中強(qiáng)制使用緩存的配置及緩存優(yōu)先級(jí)的講解,一定程度上可以幫助大家解決Nginx不緩存或緩存失效的問(wèn)題,需要的朋友可以參考下2016-01-01
nginx 版本升級(jí)的實(shí)現(xiàn)方法
文介紹了如何在CentOS7服務(wù)器上無(wú)中斷地將Nginx從1.18.0版本升級(jí)到1.19.7版本,提供了兩種升級(jí)方法,具有一定的參考價(jià)值,感興趣的可以了解一下2024-09-09
nginx server_name配置多個(gè)域名時(shí)的坑
Nginx配置多個(gè)server_name時(shí),$server_name默認(rèn)取第一個(gè)值,導(dǎo)致PHP獲取錯(cuò)誤,下面就來(lái)介紹一下該問(wèn)題的解決,感興趣的可以了解一下2025-05-05
nginx配置gzip壓縮優(yōu)化傳輸效率加快頁(yè)面訪(fǎng)問(wèn)速度的問(wèn)題
本文介紹了如何在nginx服務(wù)器中配置gzip壓縮,通過(guò)壓縮HTTP響應(yīng)內(nèi)容,減少數(shù)據(jù)傳輸大小和響應(yīng)時(shí)間,從而提升網(wǎng)站性能和訪(fǎng)問(wèn)速度,感興趣的朋友跟隨小編一起看看吧2024-09-09
Nginx rewrite和proxy_pass的區(qū)別及說(shuō)明
這篇文章主要介紹了Nginx rewrite和proxy_pass的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
Nginx更換ssl證書(shū)不生效的問(wèn)題解決
本文主要介紹了Nginx配置中更換SSL證書(shū)后,新證書(shū)不生效的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12

