Nginx配置防盗链功能
什么是防盗链系统
盗链是指在自己的页面上展示一些并不在自己服务器上的内容。通常的做法是通过技术手段获得它人服务器上的资源地址,绕过别人的资源展示页面,直接在自己的页面上向最终用户提供此内容。
比较常见的是一些小站盗用大站的资源(图片、音乐、视频、软件等),对于这些小站来说,通过盗链的方法可以减轻自己服务器的负担,因为真实的空间和流量均是来自别人的服务器。
防盗链系统就是防范盗链的系统,防止别人通过一些技术手段绕过本站的资源展示页面,盗用本站的资源,让绕开本站资源展示页面的资源链接失效。实施防盗链系统后,因为屏蔽了那些盗链的间接资源请求,从而可以大大减轻服务器及带宽的压力,也正如此,越来越多的站点都开始实施防盗链技术。
我配置这个功能只是让自己的图片资源不被爬虫爬取。
原理
http协议中有一个referer的头字段,采用URL的格式来表示当前请求的资源是从哪个链接过来的。换句话说,通过referer,网站可以检测目标网页访问的来源网页。
nginx实现对referer的检测
nginx有一个叫valid_referers的配置,详见这里
它可以效验http请求中referer的值。
全局变量invalid_referer,可以指示是否效验成功。
参考配置
1 |
|
其它方法
采取NginxHttpAccessKeyModule模块。
基本原理就是在下发资源时,加上远程地址ip和key进行hash的参数,然后在accesskey模块中进行检测。
参考
Nginx配置防盗链功能
https://blog.fengcl.com/2017/08/27/nginx-add-anti-pirate-link-technique/