盛网小奶狗 发表于 2020-8-7 10:08:48

利用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标识不匹配下面域名列表中的任意一个,而对找到匹配域名的请求执行lookup操作。


品牌官网:33ol.com

国内外高防服务器出租,BGP线路,大带宽,秒解

QQ:798221398电话:13202696798
页: [1]
查看完整版本: 利用Varnish实现图片防盗链