nginx:防盗链

防盗链:
举个例子:有时候我们从一个网站,比如腾讯,转载了一篇文章到自己的博客或空间,发现一些图片显示不了,这就是防盗链在起作用。图片是放在腾讯的服务器上的,腾讯拒绝其它网站的页面访问该资源。

一般情况下,当我们浏览一个网页时,并不是一次请求就会把整个页面的内容传到本地浏览器,尤其是当这个页面带有图片或者其它资源。第一次请求会传回该页面的HTML文本,浏览器解析该文本发现还有图片,会发送第二次请求,请求获得图片。盗链问题是:如果一个网站没有页面中所说的资源,它就会把这个图片链接到别的网站,这样没有任何资源的网站利用了别的网站的资源来展示给浏览者,提高了自己的访问量,而大部分浏览者又不会很容易地发现,这样显然,对于那个被利用了资源的网站是不公平的。一些不良网站为了不增加成本而扩充自己站点内容,经常盗用其他网站的链接。一方面损害了原网站的合法利益,另一方面又加重了服务器的负担
==============================================
location ~* .(gif|jpg|png|swf|flv)$ { 
        valid_referers none blocked *.xxx.com www.abc.com; 
        if ($invalid_referer) { 
          return 403; 
        } 
}
valid_referers none blocked,其中none表示空的来路,也就是直接访问,比如直接在浏览器打开一个文件,blocked表示被防火墙标记过的来路,*.xxx.com表示所有子域名

==============================================
nginx针对文件目录的防盗链配置方法:
location /img/ {
  root /data/img/;
  valid_referers none blocked *.xxx.com www.abc.com;
  if ($invalid_referer) {
      rewrite ^/ http://www.xxx.com/error.gif;
  }
}
==============================================
NginxHttpAccessKeyModule实现防盗链

猜你喜欢

转载自samson870830.iteye.com/blog/2384985