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