Nginx設定Referer來防止盜圖
如果不是圖床,還真怕別的網站直接使用本站圖片。這樣子流量很可能一下子就被刷光了,畢竟CDN都是白花花的銀子買來的。 因此,還是設定一個防盜鏈吧,Nginx就可以完成這個功能了。
一般來說,遵照HTTP協議實現的瀏覽器,在從A網站訪問B網站時,都會帶上當前網站的URL,以表明此次點選是從何而起的。因此, Nginx的這個模組也是依靠這個來實現,所以,如果駭客不加此頭部,還是沒法愉快的防盜圖。
Nginx官網文件如下:
Syntax: valid_referers none | blocked | server_names | string ...; Default:— Context:server, location
因此,我們可以在server
或者location
塊加上程式碼,我是儲存為valid_referers.conf
:
valid_referers none blocked server_names; if ($invalid_referer) { return 403; }
然後在對應需要的地方加上include /etc/nginx/valid_referers.conf
,當然,執行這個的前提是已經把valid_referers.conf
放到對應機器上的/etc/nginx/valid_referers.conf
路徑下。
示例:
location /articles/img { include /etc/nginx/valid_referers.conf; root /data/blog/code; }