利用Varnish實現圖片防盜鏈

      圖片防盜鏈功能對於大型網站的運維很是重要,各類Web服務器,如Apache和Nginx均可以很容易地實現圖片防盜鏈功能。利用Varnish實現這個功能也很是簡單,只需在配置文件的vcl_recv函數內增長以下配置便可。瀏覽器

if (req.http.referer ~ "http://.*") {     
 
 
 
 
 
 

  
  
  
  

 
  1.          if (  !(req.http.referer ~ "http://.*ixdba\.net"  
  2.              || req.http.referer ~ "http://.*google\.com"  
  3.              || req.http.referer ~ "http://.*yahoo\.cn"et  
  4.              || req.http.referer ~ "http://.*google\.cn"  
  5.              )) {  
  6.                  set req.http.host = "www.ixdba.net";  
  7.                  set req.url = "/templets/default/images/logo.gif";  
  8.          }  
  9.                        return (lookup);  
  10.          }
在這段配置中,用了一個內置變量req.http.referer,防盜鏈就是經過referer來實現的。其實,referer是http header的一部分,當瀏覽器向Web服務器發送請求的時候,通常會帶上一個referer標識,用來告訴服務器請求是從哪一個頁面連接過來的服務器根據 這個標識就能夠獲取信息來源,進而進行相應的處理。

這段配置的含義爲:Varnish服務器對接收或發送的請求進行判斷,若是referer標識存在,且referer標識不匹配下面域名列表中的任意一個,就將請求重定向到www.ixdba.net域名下的/templets/default/images/logo.gif圖片,而對找到匹配域名的請求執行lookup操做。服務器

相關文章
相關標籤/搜索