您好,登錄后才能下訂單哦!
一、原理:
nginx 防止網站資源被盜用模塊
ngx_http_referer_module
? HTTP Referer是Header的一部分,當瀏覽器向Web服務器發送請求的時候,一般會帶上Referer,告訴服務器我是從哪個頁面鏈接過來的,服務器借此可以獲得一些信息用于處理,例如防止未經允許的網站盜鏈圖片、文件等。因此HTTP Referer頭信息是可以通過程序來偽裝生成的,所以通過Referer信息防盜鏈并非100%可靠,但是,它能夠限制大部分的盜鏈情況.
二、防盜鏈配置
[root@nginx-server ~]# vim /etc/nginx/nginx.conf
日志格式添加"$http_referer",默認已經打開了的,不需要操作。
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
三、配置原服務器
準備兩臺機器,一張圖片
1、在網站發布目錄下編輯html文件并準備一張圖片名為33.jpg,這里網站發布目錄為/web1
vim /web1/index.html
<html>
<head>
<meta charset="utf-8">
<title>hostphoto.com</title>
</head>
<body>
<center><img src="33.jpg" alt="fangxi" width="1000px" height="900px" /></center>
</body>
</html>
2、編輯nginx子配置文件
location / {
root /web1;
index index.html index.htm;
valid_referers none blocked 192.168.16.150;
if ($invalid_referer) {
return 403;
}
}
? none : 允許沒有http_refer的請求訪問資源;
? blocked : 允許不是http://開頭的,不帶協議的請求訪問資源---被防火墻過濾掉的;
? server_names : 只允許指定ip/域名來的請求訪問資源(白名單);
3、檢查配置文件是否有錯誤,沒有錯誤重新加載。
nginx -t
nginx -s reload
四、配置要盜用的服務器
1、配置nginx訪問頁面并創建目錄
location / {
root /web1;
index index.html index.htm;
}
mkdir /web1
2、創建頁面
vim /web1/index.html
<html>
<body >
<img src="https://cache.yisu.com/upload/information/20200309/28/29438.jpg" />
</body>
</html>
五、測試
當開啟防盜鏈時,訪問要盜用的服務器,圖片顯示不出來。
當把防盜鏈代碼注釋之后,訪問要盜用的服務器,圖片就可以顯示出來。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。