<article>
如果服务器的图片被别的网站盗链,将影响服务器的带宽以及访问速度,这时我们就需要设置图片文件或视频文件的防盗链功能;
防盗链功能,简单来说就是你可以直接访问该资源,但是不能将我的资源链接放到你自己的服务器上让别人访问,尤其是图片或视频这种比较大的文件,容易导致服务器响应很慢。
好,以下是一些配置:
首先是工作的服务器,IP地址为:192.168.1.199,上面有一个图片文件为 /images/button.png, 这里的服务器用IP访问,实际中肯定是以域名访问才对的。
这里有两台测试服务器,一台是windows系统的apache服务器,IP地址是192.168.1.30,一台是linux系统的nginx服务器,域名是:shiyifei.nethospital_admin.neibu
首先写一个测试脚本 referImg.html,内容如下:
<pre><!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>测试防盗链功能</title>
<meta name="description" content="">
<meta name="keywords" content="">
<link href="" rel="stylesheet">
</head>
<body>
<img src="http://192.168.1.199/images/button.png" />
</body>
</html></pre>
分别将该文件放在192.168.1.30以及shiyifei.nethospital_admin.neibu的根目录下,然后在192.168.1.30电脑上分别访问 http://192.168.1.199/images/button.png http://127.0.0.1:6000/referImg.html http://shiyifei.nethospital_admin.neibu
我们发现图片都是可以访问到的。 192.168.1.30上是wamp环境,端口6000,因此可以直接用127.0.0.1:6000来请求。
然后我们在192.168.1.199服务器上设置nginx防盗链,设置如下:
image配置节点是在 http->server下
配置成功以后,我们检查一下配置文件是否有效
/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/etc/nginx.conf
nginx: the configuration file /usr/local/nginx/etc/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/etc/nginx.conf test is successful
配置文件有效,然后重新加载一下配置文件
/etc/init.d/nginx reload
然后再分别访问一下上面的三个地址:
具体网站响应如下图所示:
image直接访问ok
image在白名单的服务器上访问也是ok的
image我们可以看到,在shiyifei.nethospital_admin.neibu这个服务器上访问时是允许的,这是因为我们将shiyifei.nethospital_admin.neibu加入了白名单;
而在192.168.1.30本机的apache服务器上访问时,却返回了403错误,因为没有将192.168.1.30设置为白名单。
附带代码
location ~* .(gif|jpg|png|jpeg|swf|flv)$ {
root /www/html/www.fancyblog.club;
expires 30d;
valid_referers none blocked 47.75.15.48 www.fancyblog.club *.baidu;
if ($invalid_referer) {
return 403;
##rewrite ^/(.*) http://www.fancyblog.club/logo.png;
}
}
多个域名经测试 必须绑定多个 才能完全生效
</article>
转载自。 https://blog.csdn.net/shi_yi_fei/article/details/58596716
网友评论