Nginx详解十三:Nginx场景实践篇之防盗链

Posted zhongyehai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx详解十三:Nginx场景实践篇之防盗链相关的知识,希望对你有一定的参考价值。

 

 

防盗链:

目的:防止资源被盗用

 

防盗链设置思路

首要方式:区别哪些请求是非正常的用户请求

 

基于http_refer防盗链配置模块(判断refer(上一步的链接)信息是否为允许访问的网站)

配置语法:valid_refer none | bloked | server_names | string ...;
默认状态:-
配置方法:server、location

 

确认之前配的timg.jpg还在/opt/app/code/images下面

技术图片

技术图片

技术图片

 

编辑一个html,上传到/opt/app/code下面

<html>
<head>
<meta charset="utf-8">
<title>防盗链</title>
</head>
<body style="background-color:red;">
<img src="http://192.168.1.141/timg.jpg"/>
</body>
</html>

技术图片

reload一下,再请求

技术图片

技术图片

技术图片

 

把access.log打开再刷新一下网页:tail -f /var/log/nginx/access.log

技术图片

技术图片

 

配置允许过来的情况

在location里面加上:

valid_referers none bloched 192.168.1.141;
if ($invalid_referer){
return 403;
}

技术图片

技术图片

检查配置并重启

nginx -tc /etc/nginx/nginx.conf
nginx -s reload -c /etc/nginx/nginx.conf

技术图片

 

用curl请求一下,这里由于请求timg.jpg会把图片底层打印出来,没必要,我们只需要请求的头部,所以加一个“-I”

技术图片

 

试一下从百度跳转过去,失败

技术图片

 

 把跳转前的地址改为配置里面允许的地址,成功

技术图片

 

 这种配置方法,不止可以匹配ip,还可以匹配域名

如匹配google:valid_referers none bloched 192.168.1.141 ~ /google./;

 

以上是关于Nginx详解十三:Nginx场景实践篇之防盗链的主要内容,如果未能解决你的问题,请参考以下文章

Nginx详解十:Nginx场景实践篇之Nginx静态资源场景配置

Nginx详解十五:Nginx场景实践篇之负载均衡

Linux之nginx优化与防盗链

nginx之防盗链

Nginx优化之压缩和防盗链

Nginx服务之防盗链功能