NGINX的valid_referers中的 server_names如何理解?

关于Nginx的valid_referers指令,有不太理解的地方

其中, server_names 和 string 有啥区别,server_names 如何使用,
是这样用吗?

valid_referers none blocked server_names www.a.com www.b.com

其中的 server_names 是必须带着的关键词吗?能省略吗?
这样?

valid_referers none blocked www.a.com www.b.com
阅读 2.1k
1 个回答

这个是防盗链用的。浏览器在访问页面上的资源的时候,会自动带上一个Referer头,比如你打开www.baidu.com的时候,会发现请求页面上其他资源的时候都会带上一个这样的头:

Referer: https://www.baidu.com/

目的是告诉服务端访问该资源是从哪个地址访问过来的。利用这个特性就可以实现简易防盗链。因此nginx的valid_referers指令就是指定哪些Referer是合法有效的头,只有有效的Referer才会访问到资源,否则会添加一个内部的变量$invalid_referer = 1

server_names是一个特殊的属性值,代表匹配server_name指令的所有参数。而strings是你自己自定义的其他主机头或地址,范例官方文档也给你了。

推荐问题
宣传栏