一.什么是盗链
“盗链”的定义是:此内容不在自己服务器上,而通过技术手段,绕过别人放广告有利益的最终页,直接在自己的有广告有利益的页面上向最终用户提供此内容。 常常是一些名不见经传的小网站来盗取一些有实力的大网站的地址(比如一些音乐、图片、软件的下载地址)然后放置在自己的网站中,通过这种方法盗取大网站的空间和流量。
二.防盗链的方法
1、对nginx下所有项目的指定资源不同文件类型进行防盗链
比如对gif、jpg、png、swf、flv、mp3、mp4等资源进行防盗链
2、对指定目录或者指定项目目录进行防盗链
比如Nginx下有3个项目,A、B、C,
可以对A目录下的images进行防盗链,
也可以对B目录下的images进行防盗链,
也就是说,对指定目录进行防盗链。
二.nginx下所有项目的指定不同文件类型设置防盗链
例子1:修改nginx.conf 这个配置文件或者是你自定义的站点配置文件
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ #需要防盗链资源的文件类型 { valid_referers none blocked *.baidu.com baidu.com; #允许访问的域名或IP if ($invalid_referer) { rewrite ^/ http://www.goole.com/static/images/404.jpg; #如果有人非法盗链资源,则返回一张防盗链的图片 #return 404; #或者返回404错误代码 } expires 30d; #缓存时间30天 }
注意:这个图片是盗链返回的图片,也就是替换盗链网站所有盗链的图片。这个图片要放在没有设置防盗链的网站上,因为防盗链的作用,这个图片如果也放在防盗链网站上就会被当作防盗链显示不出来
例子2:nginx真正意义上的防盗链
一般,我们做好防盗链之后其他网站盗链的本站图片就会全部失效无法显示,但是您如果通过浏览器直接输入图片地址,仍然会显示图片,仍然可以右键图片另存为下载文件!依然可以下载?这样就不是彻底的防盗了!
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ #需要防盗链资源的文件类型 { valid_referers *.baidu.com baidu.com; #允许访问的域名或IP if ($invalid_referer) { rewrite ^/ http://www.goole.com/static/images/404.jpg; #如果有人非法盗链资源,则返回一张防盗链的图片 #return 404; #或者返回404错误代码 } expires 30d; #缓存时间30天 }
修改地方:第三行,把“none blocked”删掉,改成 valid_referers *.baidu.com baidu.com;
三.对指定目录或者指定项目目录进行防盗链
还是在nginx.conf里配置,位置和上面一样
如果需要真正意义上的防盗链,把“none blocked”删掉即可。
location /img/ { #img是相对目录,是html目录下的img目录 valid_referers none blocked *.baidu.com baidu.com; #允许访问该目录的域名或IP if ($invalid_referer) { rewrite ^/ http://www.goole.com/static/images/404.jpg; #如果有人非法盗链资源,则返回一张防盗链的图片 #return 403;#不允许访问返回403 } expires 30d; #缓存时间30天 }赞赏
微信赞赏
支付宝赞赏