nginx 配置防盗链(了解)
Posted 健康平安的活着
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx 配置防盗链(了解)相关的知识,希望对你有一定的参考价值。
一 防盗链
1.1 防盗链概念
网站上页面的一些静态资源,不想让本站点的静态资源被他人盗取访问。使用nginx判断请求连接的头部refer中是否含有内容以及合法性来进行处理。
referer表示第二次资源的来源地址
1.2 配置规则
valiad_referers none|blocked|server_names|string
默认值:-
位置(可以书写的地方):server,location
nginx会通过查看referer自动和valid_referers后面的内容进行匹配,如果匹配到了就将$invalid_referer变量置0,如果没有匹配到,则将$invalid_referer变量置为1
none , 检测 Referer 头域不存在的情况。 blocked ,检测 Referer 头域的值被防火墙或者代理服务器删除或伪装的情况。这种情况该头域的值不以 “http://” 或 “https://” 开头 也允许访问 。 server_names ,设置一个或多个 URL ,检测 Referer 头域的值是否是这些 URL 中的某一个。如:
http://loclahost:80/1.jpg; 则开始判断valid_referers 为www.baidu.com 则不合法$invalid_referer 为1,则 返回401;
http://wwww.baidu/1.jpg;则开始判断valid_referers 为www.baidu.com 则合法$invalid_referer 为0,不返回401,正确访问资源;
#设置可以访问的资源地址
vaild_referers none blocked www.baidu.com
这个是如果返回的头部referer为www.baidu.com那么就不会执行valid_referer下面内容,反之就会
#如果不满足白名单规则,则返回401
if ($invalid_referer)
这个含义就是结合上面的valid_referer,如果请求头部为www.baidu.com,那么就$invalid_referer就会被赋值为0,就不会执行返回错误代码401,
如果不是www.baidu.com,那么就会赋值为1,就会执行下面内容
return 401:返回错误代码401
以上是关于nginx 配置防盗链(了解)的主要内容,如果未能解决你的问题,请参考以下文章