如何利用Varnish实现图片防盗链

发布时间:2020-04-08 01:30:02 作者:敷衍了事 阅读量:2864

如何利用Varnish实现图片防盗链
图片防盗链功能对于大型网站的运维非常重要,各种Web服务器,如Apache和Nginx都可以很容易地实现图片防盗链功能。利用Varnish实现这个功能也非常简单,只需在配置文件的vcl_recv函数内增加如下配置即可。
if (req.http.referer ~ "http://.*")
        {  
         if (  !(req.http.referer ~ "http://.*ixdba\.net"  
             || req.http.referer ~ "http://.*google\.com"  
             || req.http.referer ~ "http://.*yahoo\.cn"et  
             || req.http.referer ~ "http://.*google\.cn"  
             )) {  
                 set req.http.host = "www.zzidc.com";  
                 set req.url = "/templets/default/images/logo.gif";  
                 }  
                       return (lookup);  
         } 
在这段配置中,用了一个内置变量req.http.referer,防盗链是通过referer来实现的。其实,referer是http header的一部分,当浏览器向Web服务器发送请求的时候,一般会带上一个referer标识,用来告诉服务器请求是从哪个页面链接过来的服务器根据这个标识可以获取信息来源,进而进行相应的处理。
这段配置的含义为:Varnish服务器对接收或发送的请求进行判断,如果referer标识存在,且referer标识不匹配下面域名列表中的任意一个,将请求重定向到www.zzidc.com域名下的/templets/default/images/logo.gif图片,而对找到匹配域名的请求执行lookup操作。

***本网站图片,文字之类版权申明,因为网站可以由注册用户自行上传图片或文字,本网站无法鉴别所上传图片或文字的知识版权,如果侵犯,请及时通知我们,本网站将在第一时间及时删除。

我要评论

  热门标签

爱秒云
Catfish(鲶鱼) Blog V 4.7.3