為了保護網站的資源和帶寬,我們需要進行防盜鍊措施,避免他人盜用網站的資源。我們隻需要在nginx.conf的server中加入
<code>location ~* ^.*\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$</code>
<code>{</code>
<code> </code><code>valid_referers none blocked server_names *.</code><code>test</code><code>.com ;</code>
<code> </code><code>if</code> <code>($invalid_referer) {</code>
<code> </code><code>return</code> <code>403;</code>
<code># rewrite ^/ //或者跳轉到其它網頁上去 </code>
<code> </code><code>}</code>
<code>}</code>
擴充知識:HTTP Referer是Header的一部分,當浏覽器向Web伺服器發送請求的時候,一般會帶上Referer,告訴伺服器我是從哪個頁面連結過來的,伺服器借此可以獲得一些資訊用于處理,
例如防止未經允許的網站盜鍊圖檔、檔案等。是以HTTP Referer頭資訊是可以通過程式來僞裝生成的,是以通過Referer資訊防盜鍊并非100%可靠,但是,它能夠限制大部分的盜鍊
情況。
該指令"valid_referers"的文法:
valid_referers [none|blocked|server_names] ...
預設值:none
使用環境:server,location
該指令會根據Referer Header頭的内容配置設定一個值為0或1給變量$invalid_referer。如果Referer Header頭不符合valid_referers指令設定的有效Referer,變量$invalid_referer
将被設定為1.
該指令的參數可以為下面的内容:
none:表示無Referer值的情況。
blocked:表示Referer值被防火牆進行僞裝。
server_names:表示一個或多個主機名稱。從Nginx 0.5.33版本開始,server_names中可以使用通配符"*"号。
本文轉自YU文武貝 51CTO部落格,原文連結:http://blog.51cto.com/linuxerxy/1718813,如需轉載請自行聯系原作者