nginx设置图片防盗链

Nginx2021-04-07 08:09:52160条
如果服务器的图片被别的网站盗链,将影响服务器的带宽以及访问速度,这时我们就需要设置图片文件或视频文件的防盗链功能; 防盗链功能,简单来说就是你可以直接访问该资源,但是不能将我的资源链接放到你自己的服务器上让别人访问,尤其是图片或视频这种比较大的文件,容易导致服务器响应很慢。

以下是一些配置:

首先是工作的服务器,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.pnghttp://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设置为白名单。

评论啦~
暂无评论,快来抢沙发吧!