2016年7月29日
nginx访问日志报大量这种,经查看发现都是搜狗360QQ的图片盗链
49.84.236.135 - - [29/Jul/2016:11:35:58 +0800] "GET/upload/2015_06/forum.php HTTP/1.1" 302 160 "http://pic.*.com/d?query=%E5%A4%8F%E5%AD%A3%E5%A4%A7%E9%94%85%E8%8F%9C%E8%8F%9C%E8%B0%B1&page=1&did=6&st=255&mode=255&phu=http%3A%2F%2Fimages.meishij.net%2Fp%2F20111001%2F16eebce0733b97334d2ef049b79b0209.jpg&p=40230500""Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/47.0.2526.80 Safari/537.36 Core/1.47.640.400QQBrowser/9.4.8309.400" "-"^C
什么是盗链?
盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。
302状态码
302重定向又称之为302代表暂时性转移(Temporarily Moved ),英文名称:302 redirect。 也被认为是暂时重定向(temporary redirect),一条对网站浏览器的指令来显示浏览器被要求显示的不同的URL,当一个网页经历过短期的URL的变化时使用。一个暂时重定向是一种服务器端的重定向,能够被搜索引擎蜘蛛正确地处理。
如何确认自己被盗链了呢?
首先查看状态码是302还是200,还是别的
你可以用tailf实时查看,也可以用AWK来统计一天的。
然后看这个http://pic..com,这是*网站图片的网址
我的这条记录大概意思就是,**盗链我服务器中的图片,造成资源的浪费。
下面是如何防止被盗链,在nginx.conf中server中添加
我的都是图片多,所以类型选择gif|jpg|png
location ~* \.(gif|jpg|png)${
root /opt/****;
valid_referers *.****.net ****.net;
if ($invalid_referer) {
return 403;
}
}
代码解释
location ~* .根目录下所有文件 (gif|jpg|png)要屏蔽的文件类型${
valid_referers ..net 所有的2级域名 *.net; 主域名
return 403; 你想设定的返回的值
或者可以设置为自定义的图rewrite ^/http://www.*.com/retrun.html;