Nginx 常用变量 与 防盗链

发布时间:2024年01月06日

?

目录

?

1.常用变量

2.?$http_referer 配置防盗链

2.1?referer

2.2 配置防盗链


1.常用变量

变量说明

$args

请求中的参数,也叫查询参数

$content_length

HTTP响应信息里的"Content-Length"

$document_root

nginx虚拟主机配置文件中的root站点根目录

$document_uri

当前请求中不包含指令的URI

$host

主机头,也就是域名或者ip地址

$http_user_agent

客户端的详细信息,也就是浏览器的标识,用curl -A可以指定

$http_cookie

客户端的cookie信息

$limit_rate

如果nginx服务器使用limit_rate配置了显示网络速率,则会显示,如果没有设置, 则显示0

$remote_addr

客户端的公网ip

$remote_port

客户端的port

$remote_user

如果nginx有配置认证,该变量代表客户端认证的用户名

$request_body_file

做反向代理时发给后端服务器的本地资源的名称

$request_method

http请求方法,GET/POST/PUT/DELETE等

$request_filename

当前请求的资源文件的路径名称,相当于是

$document_root/$document_uri的组合

$request_uri

请求的链接,包括$document_uri和$args

$scheme

请求的协议,如ftp,http,https

$server_protocol

客户端请求资源使用的协议的版本,如HTTP/1.0,HTTP/1.1,HTTP/2.0 等

$server_addr

服务器IP地址

$server_name

服务器的主机名

$server_port

服务器的端口号

$uri

和$document_uri相同

$http_referer

客户端请求时的referer请求头键值对的值,通俗讲就是该请求是通过哪个链接跳过来的,用curl -e可以指定

2.?$http_referer 配置防盗链

2.1?referer

$http_referer 记录的是从哪个网站跳转过来的,如我在百度查询牙医,然后在展示的页面显示多个牙医的网站,我随便点击一个进去,就可以到达一个牙医的官网。在我访问这个官网之后,$http_referer 就会记录我是从百度过来的

用户在网站里询问然后就地就医的话,这样子百度就可以收取广告费

2.2 配置防盗链

简单来说就是防止中间商薅羊毛。

?a 网站想要防止别人盗用自己的资源的话,就需要配置防盗链。就是让a网站检查下载请求的 Referer? 是否是自己的网站,不是的话就下载不了

在a网站的server 配置文件中添加下面的代码即可,防 png 的防盗链

 location ~* \.png$ {
                if ( $http_referer !~* "a.fly.com" ) {
                        ?# !~* 不包含的意思;
                        return 403;
                }
        }

?还需要将原本放在location 中的站点根目录放出来到全局。

这样就完成了

文章来源:https://blog.csdn.net/m0_60494863/article/details/135432694
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。