您好,登錄后才能下訂單哦!
關于nginx防盜鏈的方法網上有很多教程,都可以用,但是我發現很多教程并不完整,所做的防盜鏈并不是真正的徹底的防盜鏈!
一般,我們做好防盜鏈之后其他網站盜鏈的本站圖片就會全部失效無法顯示,但是您如果通過瀏覽器直接輸入圖片地址,仍然會顯示圖片,仍然可以右鍵圖片另存為下載文件!
依然可以下載?這樣就不是徹底的防盜了!那么,nginx應該怎么樣徹底地實現真正意義上的防盜鏈呢?
如果您使用的是默認站點,也就是說,您的站點可以直接輸入服務器IP訪問的,使用root登錄,修改 /usr/local/nginx/conf/nginx.conf 這個配置文件。
如果您新建了站點,那么修改/usr/local/nginx/conf/vhost/你的域名.conf 這個配置文件,找到:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; }
把這一段刪掉,修改成:
location ~* \.(gif|jpg|png|jpeg)$ { expires 30d; valid_referers none blocke *.hugao8.com www.hugao8.com m.hugao8.com *.baidu.com *.google.com; if ($invalid_referer) { rewrite ^/ http://ww4.sinaimg.cn/bmiddle/051bbed1gw1egjc4xl7srj20cm08aaa6.jpg; #return 404; } }
第一行: location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
其中“gif|jpg|jpeg|png|bmp|swf”設置防盜鏈文件類型,自行修改,每個后綴用“|”符號分開!
第三行:valid_referers none blocked *.it300.com it300.com;
就是白名單,允許文件鏈出的域名白名單,自行修改成您的域名!*.it300.com這個指的是子域名,域名與域名之間使用空格隔開!
第五行:rewrite ^/ https://cache.yisu.com/upload/information/20200311/53/211945.jpg;
這個圖片是盜鏈返回的圖片,也就是替換盜鏈網站所有盜鏈的圖片。這個圖片要放在沒有設置防盜鏈的網站上,因為防盜鏈的作用,這個圖片如果也放在防盜鏈網站上就會被當作防盜鏈顯示不出來了,盜鏈者的網站所盜鏈圖片會顯示X符號。
這樣設置差不多就可以起到防盜鏈作用了,上面說了,這樣并不是徹底地實現真正意義上的防盜鏈!
我們來看第三行:valid_referers none blocked *.it300.com it300.com;
valid_referers 里多了“none blocked”
我們把“none blocked”刪掉,改成
valid_referers *.it300.com it300.com;
nginx徹底地實現真正意義上的防盜鏈完整的代碼應該是這樣的:
location ~* \.(gif|jpg|png|jpeg)$ { expires 30d; valid_referers *.hugao8.com www.hugao8.com m.hugao8.com *.baidu.com *.google.com; if ($invalid_referer) { rewrite ^/ http://ww4.sinaimg.cn/bmiddle/051bbed1gw1egjc4xl7srj20cm08aaa6.jpg; #return 404; } }
這樣您在瀏覽器直接輸入圖片地址就不會再顯示圖片出來了,也不可能會再右鍵另存什么的。
第五行:rewrite ^/ https://cache.yisu.com/upload/information/20200311/53/211945.jpg;
這個是給圖片防盜鏈設置的防盜鏈返回圖片,如果我們是文件需要防盜鏈下載,把第五行:
rewrite ^/ http://www.it300.com/static/p_w_picpaths/404.jpg;
改成一個鏈接,可以是您主站的鏈接,比如把第五行改成:
rewrite ^/ http://www.it300.com;
這樣,當別人輸入文件下載地址,由于防盜鏈下載的作用就會跳轉到您設置的這個鏈接!
最后,配置文件設置完成別忘記重啟nginx生效!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。