NGINX 变量

2024 年 8 月 29 日 | 阅读 15 分钟

变量是编程语言的自然组成部分。它们只是容纳各种值的容器,例如 Perl、C/C++、Bourne shell、Perl 等命令式语言。值可以是字符串,如“hello world”,数字,如“3.14”,甚至是更复杂的东西,如对这些语言中的数组或哈希表的引用。

然而,对于 Nginx 配置语言,变量只能包含一种类型的值,即字符串。但有一个有趣的例外:第三方模块 ngx_array_var 将 Nginx 变量扩展为可以包含数组,但它通过在后台将 C 指针编码为二进制字符串值来实现。

变量语法

考虑我们的 nginx.conf 配置文件,其中包含以下行

在这里,我们通过 `set` 配置指令将一个值赋给变量“$a”,该指令来自标准的 nginx_rewrite 模块。在这里,我们将字符串值“hello world”赋给“$a”。

从上面的例子中,我们可以看到 Nginx 变量名前面带有一个美元符号($)。因此,我们可以说,每当我们想在配置文件中引用一个 nginx 变量时,都必须添加美元($)前缀。

让我们看另一个简单的例子,

从上面的例子中,我们可以看到变量 $a 用于构建变量 $b 的值。因此,在执行完这两条指令后,$a 的值为“hello”,而 $b 的值为“hello, hello”。这种技术称为“变量插值”。

让我们看看 Nginx 中的变量列表

变量描述
$ancient_browser如果浏览器被识别为旧浏览器,则此变量用于等于 `ancient_browser_value` 指令设置的值。
$arg_name请求行中参数的名称。
$args请求行中参数列表。
$binary_remote_addr (ngx_http_core_module)客户端地址(二进制形式)。对于 IPv4 地址,长度始终为 4 字节;对于 IPv6 地址,长度始终为 16 字节。
$binary_remote_addr (ngx_stream_core_module)客户端地址(二进制形式)。对于 IPv4 地址,长度始终为 4 字节;对于 IPv6 地址,长度始终为 16 字节。
$body_bytes_sent发送到客户端的字节数,不包括响应头。
$bytes_received从客户端接收的字节数。
$bytes_sent (ngx_http_core_module)发送到客户端的字节数。
$bytes_sent (ngx_http_log_module)发送到客户端的字节数。
$bytes_sent (ngx_stream_core_module)发送到客户端的字节数。
$connection (ngx_http_core_module)连接序列号。
$connection (ngx_http_log_module)连接序列号。
$connection (ngx_stream_core_module)连接序列号。
$connection_requests (ngx_http_core_module)通过连接发起的当前请求数。
$connection_requests (ngx_http_log_module)通过连接发起的当前请求数。
$connections_active与 **活动连接** 值相同。
$connections_reading与 **读取** 值相同。
$connections_waiting与 **等待** 值相同。
$connections_writing与写入值相同。
$content_length“Content length”请求头字段。
$content_type“Content type”请求头字段。
$cookie_nameCookie 的名称。
$date_gmt当前的 GMT(格林威治标准时间)时间。要设置格式,请使用带有 `timefmt` 参数的 `config` 命令。
$date_local当前本地时区的时间。要设置格式,请使用带有 `timefmt` 参数的 `config` 命令。
$document_root当前请求的 `root` 或 `alias` 指令的值。
$document_uri与 $uri 相同。
$fastcgi_path_info使用 `fastcgi_split_path_info` 指令时,`$fastcgi_script_name` 变量等于指令设置的第一个捕获组的值。而 `$fastcgi_path_info` 变量等于指令设置的第二个捕获组的值。此变量用于设置 PATH_INFO 参数。
$fastcgi_script_name请求 URI(统一资源标识符),或者,如果 URI 以斜杠结尾,则为请求 URI 加上由 `fastcgi_index` 指令配置的索引文件名。
$geoip_area_code (ngx_http_geoip_module)电话区号(仅限美国)。此变量可能包含一些过时的信息,因为相应的数据库字段已弃用。
$geoip_area_code (ngx_stream_geoip_module)电话区号(仅限美国)。此变量可能包含过时的信息,因为相应的数据库字段已弃用。
$geoip_city (ngx_http_geoip_module)城市名称,例如“华盛顿”、“莫斯科”。
$geoip_city (ngx_stream_geoip_module)城市名称,例如“华盛顿”、“莫斯科”。
$geoip_city_continent_code (ngx_http_geoip_module)两字母的洲代码。例如,“NA”、“EU”。
$geoip_city_continent_code (ngx_stream_geoip_module)两字母的洲代码。例如,“NA”、“EU”。
$geoip_city_country_code (ngx_http_geoip_module)两字母的洲代码。例如,“NA”、“EU”。
$geoip_city_country_code (ngx_http_geoip_module)两字母的国家代码。例如,“RU”、“US”。
$geoip_city_country_code (ngx_stream_geoip_module)两字母的国家代码。例如,“RU”、“US”。
$geoip_city_country_code3 (ngx_http_geoip_module)三字母的国家代码。例如,“RUS”、“USA”。
$geoip_city_country_code3 (ngx_stream_geoip_module)三字母的国家代码。例如,“RUS”、“USA”。
$geoip_city_country_name (ngx_http_geoip_module)国家名称。例如,“印度”、“美国”。
$geoip_city_country_name (ngx_stream_geoip_module)国家名称。例如,“印度”、“美国”。
$geoip_country_code (ngx_http_geoip_module)两字母的国家代码。例如,“RU”、“US”。
$geoip_country_code (ngx_stream_geoip_module)两字母的国家代码。例如,“RU”、“US”。
$geoip_country_code3 (ngx_http_geoip_module)三字母的国家代码。例如,“RUS”、“USA”。
$geoip_country_code3 (ngx_stream_geoip_module)三字母的国家代码。例如,“RUS”、“USA”。
$geoip_country_name (ngx_http_geoip_module)国家名称。例如,“印度”、“美国”。
$geoip_country_name (ngx_stream_geoip_module)国家名称。例如,“印度”、“美国”。
$geoip_dma_code (ngx_http_geoip_module)根据 Google AdWords API 的地理定位,这是美国境内的 DMA(指定市场区域)代码或都会区代码。
$geoip_dma_code (ngx_stream_geoip_module)根据 Google AdWords API 的地理定位,这是美国境内的 DMA(指定市场区域)代码或都会区代码。
$geoip_latitude (ngx_http_geoip_module)纬度。
$geoip_latitude (ngx_stream_geoip_module)纬度。
$geoip_longitude (ngx_http_geoip_module)经度。
$geoip_longitude (ngx_stream_geoip_module)经度。
$geoip_org (ngx_http_geoip_module)组织名称。例如,“加州大学”。
$geoip_org (ngx_stream_geoip_module)组织名称。例如,“加州大学”。
$geoip_postal_code (ngx_http_geoip_module)邮政编码。
$geoip_postal_code (ngx_stream_geoip_module)邮政编码。
$geoip_region (ngx_http_geoip_module)区域(省、地区、州、联邦领地、领土)的名称,例如,莫斯科市、哥伦比亚特区。
$geoip_region (ngx_stream_geoip_module)区域(省、地区、州、联邦领地、领土)的名称,例如,莫斯科市、哥伦比亚特区。
$geoip_region_name (ngx_http_geoip_module)国家/地区名称(省、地区、州、联邦领地、领土),例如“莫斯科市”、“哥伦比亚特区”。
$geoip_region_name (ngx_stream_geoip_module)国家/地区名称(省、地区、州、联邦领地、领土),例如“莫斯科市”、“哥伦比亚特区”。
$gzip_ratio这是达到的压缩比,计算为原始响应大小与压缩响应大小之比。
$host来自请求行的主机名,来自 Host 请求头字段的主机名,或匹配请求的服务器名称。
$hostname (ngx_http_core_module)主机名。
$hostname (ngx_stream_core_module)主机名。
$http2协商的协议标识符:TLS 上的 HTTP/2 为 h2,明文 TCP 上的 HTTP/2 为 h2c,否则为空字符串。
$http_name这是任意的请求头字段:变量名称的最后一部分是字段名称,将其转换为小写并将连字符替换为下划线。
$https如果连接处于 SSL 模式,则为“on”,否则为空字符串。
$invalid_referer如果“Referer”请求头字段的值被认为是有效的,则字符串为空,否则为 1。
$is_args如果请求行包含参数,则为“?”,否则为空字符串。
$jwt_claim_name返回指定的 JWT(JSON Web Token)声明的值。
$jwt_header_name返回指定的 JOSE(JavaScript 对象签名和加密)头的值。
$limit_rate设置此变量可启用响应速率限制。
$memcached_key定义从 memcached 服务器获取响应的键。
$modern_browser如果浏览器被识别为现代浏览器,则等于 `modern_browser_value` 指令设置的值。
$msec (ngx_http_core_module)当前时间的毫秒分辨率(以秒为单位)。
$msec (ngx_http_log_module)日志写入时,以毫秒分辨率表示的时间(以秒为单位)。
$msec (ngx_stream_core_module)当前时间的毫秒分辨率(以秒为单位)。
$msie如果浏览器被识别为 MSIE(Microsoft Internet Explorer)的任何版本,则为 1。
$nginx_version (ngx_http_core_module)显示 nginx 版本。
$nginx_version (ngx_stream_core_module)Nginx 版本。
$pid (ngx_http_core_module)工作进程的 PID(进程 ID)。
$pid (ngx_stream_core_module)工作进程的 PID(进程 ID)。
$pipe (ngx_http_core_module)如果请求是管道化的,则为“p”,否则为“.”。
$pipe (ngx_http_log_module)如果请求是管道化的,则为“p”,否则为“.”。
$protocol与客户端通信使用的协议:UDP 或 TCP。
$proxy_add_x_forwarded_for“X-Forwarded-For”客户端请求头字段,并在其后附加 `$remote_addr` 变量,用逗号分隔。如果客户端请求头中不存在“X-Forwarded-For”字段,则 `$proxy_add_x_forwarded_for` 变量等于 `$remote_addr` 变量。
$proxy_host在 `proxy_pass` 指令中指定的代理服务器的名称和端口。
$proxy_port在 `proxy_pass` 指令中指定的代理服务器的端口,或协议的默认端口。
$proxy_protocol_addr (ngx_http_core_module)来自 PROXY 协议头的客户端地址,否则为空字符串。必须先启用 PROXY 协议。这可以通过在 `listen` 指令中设置 `proxy_protocol` 参数来完成。
$proxy_protocol_addr (ngx_stream_core_module)来自 PROXY 协议头的客户端地址,否则为空字符串。必须先启用 PROXY 协议。这可以通过在 `listen` 指令中设置 `proxy_protocol` 参数来完成。
$proxy_protocol_port (ngx_http_core_module)来自 PROXY 协议头的客户端地址,否则为空字符串。必须先启用 PROXY 协议。这可以通过在 `listen` 指令中设置 `proxy_protocol` 参数来完成。
$proxy_protocol_port (ngx_stream_core_module)来自 PROXY 协议头的客户端地址,否则为空字符串。必须先启用 PROXY 协议。这可以通过在 `listen` 指令中设置 `proxy_protocol` 参数来完成。
$query_string与 $args 相同。
$realip_remote_addr (ngx_http_realip_module)用于保留原始客户端地址。
$realip_remote_addr (ngx_stream_realip_module)用于保留原始客户端地址。
$realip_remote_port (ngx_http_realip_module)用于保留原始客户端地址。
$realip_remote_port (ngx_stream_realip_module)用于保留原始客户端地址。
$realpath_root与当前请求的 `alias` 或 `root` 指令的值对应的绝对路径名,其中所有符号链接都已解析为实际路径。
$remote_addr (ngx_http_core_module)客户端地址。
$remote_addr (ngx_stream_core_module)客户端地址。
$remote_port (ngx_http_core_module)客户端端口。
$remote_port (ngx_stream_core_module)客户端端口。
$remote_user通过基本身份验证提供的用户名。
$request完整的原始请求行。
$request_body当请求体被读取到内存缓冲区时,在由 `proxy_pass` 和 `scgi_pass` 指令处理的位置可用此变量的值。
$request_body_file包含请求体的临时文件名。
$request_completion如果请求已完成,则值为“OK”,否则为空字符串。
$request_filename基于 `root` 或 `alias` 指令以及请求 URI 的当前请求的文件路径。
$request_id从 16 个随机字节生成的唯一请求标识符(十六进制)。
$request_length (ngx_http_core_module)请求长度(请求行、请求体和头部)。
$request_length (ngx_http_log_module)请求长度(请求行、请求体和头部)。
$request_method请求方法。通常是“GET”或“POST”。
$request_time (ngx_http_core_module)请求处理时间(秒,毫秒分辨率);从客户端读取第一个字节开始经过的时间。
$request_time (ngx_http_log_module)请求处理时间(秒,毫秒分辨率);从客户端读取第一个字节到发送最后一个字节后写入日志之间经过的时间。
$request_uri完整的原始请求 URI(统一资源标识符),包含参数。
$scheme请求方案,可以是 http 或 https。
$secure_link显示链接检查的状态,其值取决于所选的操作模式。
$secure_link_expires请求中链接的生命周期。
$sent_http_name这是任意响应头字段;变量名称的最后一部分是字段名称,已转换为小写并将连字符替换为下划线。
$sent_trailer_name在响应末尾发送的任意字段;变量名称的最后一部分是字段名称,已转换为小写并将连字符替换为下划线。
$server_addr (ngx_http_core_module)接受请求的服务器地址。计算此变量的值需要系统调用。
$server_addr (ngx_stream_core_module)接受请求的服务器地址。计算此变量的值需要系统调用。
$server_name接受请求的服务器名称。
$server_port (ngx_http_core_module)接受请求的服务器端口。
$server_port (ngx_stream_core_module)接受连接的服务器端口。
$server_protocol这是请求协议,通常是 HTTP/1.0、HTTP/1.1 或 HTTP/2.0。  
$session_log_binary_id当前会话 ID(二进制形式)。
$session_log_id当前会话 ID。
$session_time会话持续时间(秒,毫秒分辨率)。
$slice_rangeHTTP 字节范围格式的当前切片范围。例如:bytes=0-1048575
$spdySPDY(发音为 speedy)连接的 SPDY 协议版本,否则为空字符串。
$spdy_request_prioritySPDY(发音为 speedy)连接的请求优先级,否则为空字符串。
$ssl_cipher (ngx_http_ssl_module)返回已建立 SSL(安全套接层)连接使用的密码字符串。
$ssl_cipher (ngx_stream_ssl_module)返回已建立 SSL(安全套接层)连接使用的密码字符串。
$ssl_ciphers (ngx_http_ssl_module)它将返回客户端支持的密码列表。这里,已知密码按名称列出,未知密码以十六进制显示,例如:AES128-SHA:AES256-SHA:0x00ff
$ssl_ciphers (ngx_stream_ssl_module)它将返回客户端支持的密码列表。这里,已知密码按名称列出,未知密码以十六进制显示,例如:AES128-SHA:AES256-SHA:0x00ff
$ssl_client_cert (ngx_http_ssl_module)对于已建立的 SSL 连接,它将以 PEM(隐私增强邮件)格式返回客户端证书,除了第一行外的每一行前面都加上制表符。
$ssl_client_cert (ngx_stream_ssl_module)对于已建立的 SSL 连接,它将以 PEM(隐私增强邮件)格式返回客户端证书,除了第一行外的每一行前面都加上制表符。
$ssl_client_escaped_cert对于已建立的 SSL 连接,它将以 PEM(隐私增强邮件)格式返回客户端证书。
$ssl_client_fingerprint (ngx_http_ssl_module)对于已建立的 SSL 连接,它将返回客户端证书的 SHA1(安全哈希算法)指纹。
$ssl_client_fingerprint (ngx_stream_ssl_module)对于已建立的 SSL 连接,它将返回客户端证书的 SHA1(安全哈希算法)指纹。
$ssl_client_i_dn (ngx_http_ssl_module)根据 RFC 2253,为已建立的 SSL 连接返回客户端证书的“颁发者 DN”(DN 是区分名)字符串。
$ssl_client_i_dn (ngx_stream_ssl_module)根据 RFC 2253,为已建立的 SSL 连接返回客户端证书的“颁发者 DN”(DN 是区分名)字符串。
$ssl_client_i_dn_legacy为已建立的 SSL 连接返回客户端证书的“颁发者 DN”(DN 是区分名)字符串。
$ssl_client_raw_cert (ngx_http_ssl_module)对于已建立的 SSL 连接,它将以 PEM(隐私增强邮件)格式返回客户端证书。
$ssl_client_raw_cert (ngx_stream_ssl_module)对于已建立的 SSL 连接,它将以 PEM(隐私增强邮件)格式返回客户端证书。
$ssl_client_s_dn (ngx_http_ssl_module)根据 RFC2253,为已建立的 SSL 连接返回客户端证书的“主体 DN”(DN 是区分名)字符串。
$ssl_client_s_dn (ngx_stream_ssl_module)根据 RFC2253,为已建立的 SSL 连接返回客户端证书的“主体 DN”(DN 是区分名)字符串。
$ssl_client_s_dn_legacy为已建立的 SSL 连接返回客户端证书的“主体 DN”(DN 是区分名)字符串。
$ssl_client_serial (ngx_http_ssl_module)对于已建立的 SSL 连接,它将返回客户端证书的序列号。
$ssl_client_serial (ngx_stream_ssl_module)对于已建立的 SSL 连接,它将返回客户端证书的序列号。
$ssl_client_v_end (ngx_http_ssl_module)它将返回客户端证书的到期日期。
$ssl_client_v_end (ngx_stream_ssl_module)它将返回客户端证书的到期日期。
$ssl_client_v_remain (ngx_http_ssl_module)它将返回客户端证书到期前的天数。
$ssl_client_v_remain (ngx_stream_ssl_module)它将返回客户端证书到期前的天数。
$ssl_client_v_start (ngx_http_ssl_module)它将返回客户端证书的生效日期。
$ssl_client_v_start (ngx_stream_ssl_module)它将返回客户端证书的生效日期。
$ssl_client_verify (ngx_http_ssl_module)它将返回客户端证书验证的结果:“SUCCESS”、“FAILD:reason”,如果没有证书则为“NONE”。
$ssl_client_verify (ngx_stream_ssl_module)它将返回客户端证书验证的结果:“SUCCESS”、“FAILD:reason”,如果没有证书则为“NONE”。
$ssl_curves (ngx_http_ssl_module)返回客户端支持的曲线列表。所有已知曲线都按名称列出,未知曲线以十六进制显示,例如:0x001d:prime256v1:secp521r1:secp384r1
$ssl_curves (ngx_stream_ssl_module)返回客户端支持的曲线列表。所有已知曲线都按名称列出,未知曲线以十六进制显示,例如:0x001d:prime256v1:secp521r1:secp384r1
$ssl_early_data如果使用 TLS 1.3 早期数据且握手尚未完成,则返回 1,否则返回空。
$ssl_preread_alpn_protocols它返回客户端通过 ALPN 宣传的协议列表,值之间用逗号分隔。
$ssl_preread_protocol客户端支持的最高 SSL(安全套接层)协议版本。
$ssl_preread_server_name返回通过 SNI(服务器名称指示)请求的服务器名称。
$ssl_protocol (ngx_http_ssl_module)它将返回已建立 SSL 连接的协议。
$ssl_protocol (ngx_stream_ssl_module)它将返回已建立 SSL 连接的协议。
$ssl_server_name (ngx_http_ssl_module)返回通过 SNI(服务器名称指示)请求的服务器名称。
$ssl_server_name (ngx_stream_ssl_module)返回通过 SNI(服务器名称指示)请求的服务器名称。
$ssl_session_id (ngx_http_ssl_module)它将返回已建立 SSL 连接的会话标识符。
$ssl_session_id (ngx_stream_ssl_module)它将返回已建立 SSL 连接的会话标识符。
$ssl_session_reused (ngx_http_ssl_module)如果 SSL 会话被重用,则返回“r”,否则返回“.”。
$ssl_session_reused (ngx_stream_ssl_module)如果 SSL 会话被重用,则返回“r”,否则返回“.”。
$status (ngx_http_core_module)响应状态。
$status (ngx_http_log_module)响应状态。
$status (ngx_stream_core_module)会话状态,可以是以下任一状态:200:会话成功完成。400:客户端数据无法解析。403:访问被禁止。500:内部服务器错误。502:网关错误。503:服务不可用。
$tcpinfo_rtt显示有关客户端 TCP 连接的信息,在支持 `TCP_INFO` 套接字选项的系统上可用。
$tcpinfo_rttvar显示有关客户端 TCP 连接的信息,在支持 `TCP_INFO` 套接字选项的系统上可用。
$tcpinfo_snd_cwnd显示有关客户端 TCP 连接的信息,在支持 `TCP_INFO` 套接字选项的系统上可用。
$tcpinfo_rcv_space显示有关客户端 TCP 连接的信息,在支持 `TCP_INFO` 套接字选项的系统上可用。
$time_iso8601 (ngx_http_core_module)以 ISO 8601 标准格式显示本地时间。
$time_iso8601 (ngx_http_log_module)以 ISO 8601 标准格式显示本地时间。
$time_iso8601 (ngx_stream_core_module)以 ISO 8601 标准格式显示本地时间。
$time_local (ngx_http_core_module)以通用日志格式显示本地时间。
$time_local (ngx_http_log_module)以通用日志格式显示本地时间。
$time_local (ngx_stream_core_module)以通用日志格式显示本地时间。
$uid_gotCookie 名称和收到的客户端标识符。
$uid_reset如果变量设置为非空字符串(即不为“0”),则表示客户端标识符已重置。特殊值 `log` 还会导致将有关重置标识符的消息输出到 `error_log`。
$uid_setCookie 名称和发送的客户端标识符。
$upstream_addr (ngx_http_upstream_module)它将保留上游服务器的 IP 地址和端口,或 UNIX 域套接字路径。如果请求处理过程中联系了多个服务器,则它们的地址用逗号分隔。
$upstream_addr (ngx_stream_upstream_module)它将保留上游服务器的 IP 地址和端口,或 UNIX 域套接字路径。如果请求处理过程中联系了多个服务器,则它们的地址用逗号分隔。
$upstream_bytes_received (ngx_http_upstream_module)从上游流服务器接收的字节数。多个连接的值用逗号(,)和冒号(:)分隔,类似于 `$upstream_addr` 变量中的地址。
$upstream_bytes_received (ngx_stream_upstream_module)从上游流服务器接收的字节数。多个连接的值用逗号(,)和冒号(:)分隔,类似于 `$upstream_addr` 变量中的地址。
$upstream_bytes_sent (ngx_http_upstream_module)发送到上游流服务器的字节数。多个连接的值用逗号(,)和冒号(:)分隔,类似于 `$upstream_addr` 变量中的地址。
$upstream_bytes_sent (ngx_stream_upstream_module)发送到上游流服务器的字节数。多个连接的值用逗号(,)和冒号(:)分隔,类似于 `$upstream_addr` 变量中的地址。
$upstream_cache_status它将保留访问响应缓存的状态。状态可以是“BYPASS”、“MISS”、“EXPIRED”、“STALE”、“REVALIDATED”、“UPDATING”或“HIT”。
$upstream_connect_time (ngx_http_upstream_module)它用于保留与上游服务器建立连接所花费的时间(1.9.1 版本);时间以秒为单位,具有毫秒分辨率。在 SSL 的情况下,它还包括握手所花费的时间。多个连接的时间用逗号(,)和冒号(:)分隔,类似于 `$upstream_addr` 变量中的地址。
$upstream_connect_time (ngx_stream_upstream_module)保留连接到上游服务器的时间;时间以秒为单位,具有毫秒分辨率。多个连接的时间用逗号(,)分隔,类似于 `$upstream_addr` 变量中的地址。
$upstream_cookie_name上游服务器在 `Set-Cookie` 响应头字段中发送的具有指定名称的 Cookie。仅保存最后一个服务器响应中的 Cookie。
$upstream_first_byte_time接收第一个数据字节的时间。时间以秒为单位,具有毫秒分辨率。多个连接的时间用逗号(,)分隔,类似于 `$upstream_addr` 变量中的地址。
$upstream_header_time它用于保留从上游服务器接收头部所花费的时间。多个连接的时间用逗号(,)和冒号(:)分隔,类似于 `$upstream_addr` 变量中的地址。
$upstream_http_name保留服务器响应头字段。
$upstream_queue_time它用于保留请求在上游队列中花费的时间;时间以秒为单位,具有毫秒分辨率。多个连接的时间用逗号(,)和冒号(:)分隔,类似于 `$upstream_addr` 变量中的地址。
$upstream_response_length它用于保留从上游服务器获得的响应的长度。长度以字节为单位。多个响应的长度用逗号(,)和冒号(:)分隔,类似于 `$upstream_addr` 变量中的地址。
$upstream_response_time它用于保留从上游服务器接收响应所花费的时间;时间以秒为单位,具有毫秒分辨率。多个连接的时间用逗号(,)和冒号(:)分隔,类似于 `$upstream_addr` 变量中的地址。
$upstream_session_time会话持续时间(秒,毫秒分辨率)。多个连接的时间用逗号(,)分隔,类似于 `$upstream_addr` 变量中的地址。
$upstream_status它用于保留从上游服务器获得的响应的状态码。多个响应的状态码用逗号(,)和冒号(:)分隔,类似于 `$upstream_addr` 变量中的地址。如果无法选择服务器,则该变量保留 502(网关错误)状态码。
$upstream_trailer_name它用于保留从上游服务器获得的响应末尾的字段。
$uri请求中的当前 URI,已规范化。我们可以在请求处理过程中更改 `$uri` 的值,例如在执行内部重定向时,或在使用索引文件时。

下一主题指令和上下文