Nginx作为静态资源web服务之防盗链

Nginx作为静态资源web服务之防盗链


首先,为什么需要防盗链,因为有些资源存在竞争对手的关系,比如淘宝的商品图片,不会轻易的让工具来爬虫爬走收集。但是如果使用防盗链,需要知道上一个访问的资源,然后放入名单中进行判断。那么如何获取上一个访问的资源呢,可以通过http_referers模块来实现。

1.查看 nginx.conf可以查看日志的配置中有下面这一段
Nginx作为静态资源web服务之防盗链
所以可以通过看日志来看看 $http_referer 保存的信息是什么了。

2. 配置一个html,html信息如下
<html>
        <head>
                <title>duguxiaobiao</title>
        </head>
        <body style="background-color:red">
                <img src="http://192.168.78.135/1.jpg"/>
        </body>
</html>
3. default.conf文件中信息还是如下,暂时不修改,再打开日志,等加载后输入网址看效果
Nginx作为静态资源web服务之防盗链
4. 输入网址,查看效果
Nginx作为静态资源web服务之防盗链
Nginx作为静态资源web服务之防盗链
从日志中也可以看到,上一个网址是 test_referer.html文件,下面来配置防盗链

5. 在default.conf文件中添加如下配置
Nginx作为静态资源web服务之防盗链
解释一下: valid_referers:表示白名单, none:表示空的来路,比如直接访问的, blocked:表示被防火墙标识过的来路, 后面的ip就是允许的名单。如果不在这些白名单的配置下得来路,都会进入到 403。

6. 使用工具测试,先模拟从百度下发送请求,发现403被拦截
Nginx作为静态资源web服务之防盗链
下面改成 本地ip来测试
Nginx作为静态资源web服务之防盗链

至此,测试成功。在这里推荐一篇博客 ,详解讲解了 nginx防盗链的使用 nginx防盗链详细解说