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 配置防盗链(了解)的主要内容,如果未能解决你的问题,请参考以下文章

Nginx服务之防盗链功能

nginx 防盗链简单配置

带你了解nginx服务优化!

Nginx修改配置实现图片防盗链

nginx rewrite重写与防盗链配置

九爷 带你了解 nginx优化与防盗链