Nginx 之防盜鏈配置

首先,咱們須要知道經過什麼來實現防盜的!html

    http referer 是header的一部分,當瀏覽器向web服務器發送請求的時候,通常會帶上referer,這是在告訴服務器是從哪一個頁面連接過來的,服務器藉此能夠得到一些信息用於處理;nginx

location /photos/ {
    valid_referers  none blocked 域名/IP;
    if ($invalid_referer) {
      return 403;
    }
}

  

Http  Referer 模塊的功能有:web

valid_referers  :該指令會根據瀏覽器Referer header頭的內容分配一個值0或1給變量$invalid_referer ;瀏覽器

若是referer header 頭不符合valid_referers指令設置的有效referer,變量$invalid_referer將被設置爲1,那麼便會執行if模塊中的內容;服務器

該指令的參數有:spa

none :默認值,表示沒referer值(直接訪問防盜鏈中的內容)的狀況;server

blocked :表示referer值被防火牆假裝;htm

server_names :表示一個或者多個主機名稱,從nginx0.5.33版本開始,server_names中可使用通配符*;blog

咱們經過一個例子來更深徹的來了解一下防盜鏈吧!圖片

location ~* \.(gif|jpg|jpeg|png|bmp|swf|flv)$ {
     valid_referers none blocked 域名/IP;
     if ($invalid_referer) {
         rewrite ^/ http://www.afeige.cn/404.html;
         #return 404;
     }
 }

  

第一行:表示對以   gif|jpg|jpeg|png|bmp|swf|flv  結尾的文件進行防盜鏈;

第二行:表示對  域名/IP   這個來路進行判斷

if{}裏面內容的意思是,若是來路不是指定來路就跳轉到錯誤頁面,固然直接返回404也是能夠的呀!

 

若  valid_referers none blocked 域名/IP;   中,none 存在;那麼在瀏覽器直接訪問域名下的該文件依然也能夠訪問

爲了達到即便在瀏覽器中輸入正確的圖片路徑,也不容許訪問的狀態;那麼把none刪除掉就Ok了!

 

 

 

成功的路老是愈來愈窄,而後愈來愈寬。若是輕易就成功了豈不是沒意思了。

相關文章
相關標籤/搜索