Nginx 内置变量和自定义变量

Nginx 内置变量和自定义变量

nginx的变量可以在配置文件中引用,作为功能判断或者日志等场景使用,变量可以分为内置变量和自定义变量,内置变量是由nginx模块自带,通过变量可以获取到众多的与客户端访问相关的值。

常用内置变量

$remote_addr            存放了客户端的地址,注意是客户端的公网IP,也就是一家人访问一个网站,则会显示为路由器的公网IP。
$args                   URL中的指令包含的参数,例如http://www.magedu.net/main/index.do?id=20190221&partner=search 
                        中的id=20190221&partner=search,动态服务器中经常会有这些信息
$document_root          保存了针对当前资源的请求的系统根目录,如/apps/nginx/html
$document_uri           保存了当前请求中不包含指令的URI,注意是不包含请求的指令,比如
                        http://www.magedu.net/main/index.do?id=20190221&partner=search 会被定义为 /main/index.do
$host                   存放了请求的 host 名称
$http_user_agent        客户端使用的浏览器的详细信息
$limit_rate             如果 nginx 服务器使用 limit_rate 配置了显示网络速率,则会显示,如果没有设置, 则显示 0
$remote_port            客户端请求 nginx 服务器时随机打开的端口,这是每个客户端自己的端口。
$request_body_file      做反向代理时发给后端服务器的本地资源的名称
$request_method         请求资源的方式,GET/PUT/DELETE等
$request_filename       当前请求的资源文件的路径名称,由root或alias指令与URI请求生成的文件绝对路径,
                        比如 /apps/nginx/html/main/index.html
$scheme                 请求的协议,如ftp,https,http等
$server_protocol        保存了客户端请求资源使用的协议的版本,如HTTP/1.0,HTTP/1.1,HTTP/2.0等
$server_addr            保存了服务器的 IP 地址
$server_name            请求的服务器的主机名
$server_port            请求的服务器的端口号

自定义变量

假如需要自定义变量名称和值,使用指令set $variable value;,则方法如下:

Syntax: 
set $variable value; 
Default: — Context: server, location, if

​ —>可以在配置文件的 server location if 中使用 set $varname value 进行设置
例(如下):

server {
	listen		80;
	server_name	www.daming.net;
	location /main {
		index index.html;
		echo $remote_addr;
		set $daming "daming.com"; #声明变量
		echo $daming; #输出变量
	}
}
[root@centos7 ~]# curl www.daming.net/main
192.168.66.7
daming.com
[root@centos7 ~]# 
发布了39 篇原创文章 · 获赞 2 · 访问量 1021

猜你喜欢

转载自blog.csdn.net/weixin_45341507/article/details/103937459