温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

nginx中怎么利用referer指令配置防盗链

发布时间:2021-08-09 17:52:47 来源:亿速云 阅读:626 作者:Leah 栏目:建站服务器

今天就跟大家聊聊有关nginx中怎么利用referer指令配置防盗链,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

实现图片防盗链:

1

location ~* \.(gif|jpg|png|webp)$ { valid_referers none blocked domain.com *.domain.com server_names ~\.google\. ~\.baidu\.; if ($invalid_referer) { return 403; #rewrite ^/ /2018img/2018/09/25181003.jpg; } root /opt/www/image; }

以上所有来至domain.com和域名以及baidu和google的站点都可以访问到当前站点的图片,如果来源域名不在这个列表中,那么$invalid_referer等于1,在if语句中返回一个403给用户,这样用户便会看到一个403的页面,如果使用下面的rewrite,那么盗链的图片都会显示403.jpg。none规则实现了允许空referer访问,即当直接在浏览器打开图片,referer为空时,图片仍能正常显示.

1

[root@loya ~]# curl -I /2018img/2018/09/25181009.jpg -H 'Referer:http://www.baidu.com'HTTP/1.1 200 OKServer: nginx/1.8.1Date: Fri, 16 Dec 2016 14:56:51 GMTContent-Type: image/jpegContent-Length: 17746Last-Modified: Tue, 16 Aug 2016 03:20:21 GMTConnection: keep-aliveETag: "57b28675-4552"Accept-Ranges: bytes[root@loya ~]# curl -I /2018img/2018/09/25181009.jpg -H 'Referer:http://www.qq.com'HTTP/1.1 403 ForbiddenServer: nginx/1.8.1Date: Fri, 16 Dec 2016 14:56:58 GMTContent-Type: text/html; charset=utf-8Content-Length: 168Connection: keep-alive

指令

语法: valid_referers none | blocked | server_names | string  http://www.bbqmw.net/qm_scbzqmz/ …;

配置段: server, location

指定合法的来源'referer', 他决定了内置变量$invalid_referer的值,如果referer头部包含在这个合法网址里面,这个变量被设置为0,否则设置为1. 需要注意的是:这里并不区分大小写的.

参数说明:

none “Referer” 为空 blocked “Referer”不为空,但是里面的值被代理或者防火墙删除了,这些值都不以http://或者https://开头,而是“Referer: XXXXXXX”这种形式 server_names “Referer”来源头部包含当前的server_names(当前域名) arbitrary string 任意字符串,定义服务器名或者可选的URI前缀.主机名可以使用*开头或者结尾,在检测来源头部这个过程中,来源域名中的主机端口将会被忽略掉 regular expression 正则表达式,~表示排除https://或http://开头的字符串.

看完上述内容,你们对nginx中怎么利用referer指令配置防盗链有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI