您的位置:首页 > 运维架构 > Nginx

nginx设置图片防盗链

2017-02-28 15:16 330 查看
如果服务器的图片被别的网站盗链,将影响服务器的带宽以及访问速度,这时我们就需要设置图片文件或视频文件的防盗链功能;

防盗链功能,简单来说就是你可以直接访问该资源,但是不能将我的资源链接放到你自己的服务器上让别人访问,尤其是图片或视频这种比较大的文件,容易导致服务器响应很慢。

好,以下是一些配置:

首先是工作的服务器,IP地址为:192.168.1.199,上面有一个图片文件为 /images/button.png, 这里的服务器用IP访问,实际中肯定是以域名访问才对的。

这里有两台测试服务器,一台是windows系统的apache服务器,IP地址是192.168.1.30,一台是linux系统的nginx服务器,域名是:shiyifei.nethospital_admin.neibu

首先写一个测试脚本 referImg.html,内容如下:

<!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>


分别将该文件放在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防盗链,设置如下:



配置节点是在 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

然后再分别访问一下上面的三个地址:

具体网站响应如下图所示:



直接访问ok



在白名单的服务器上访问也是ok的



我们可以看到,在shiyifei.nethospital_admin.neibu这个服务器上访问时是允许的,这是因为我们将shiyifei.nethospital_admin.neibu加入了白名单;

而在192.168.1.30本机的apache服务器上访问时,却返回了403错误,因为没有将192.168.1.30设置为白名单。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息