NGINX Core (HTTP)
124 — 覆盖核心 HTTP、stream 与第三方模块的变量参考——可搜索、附示例与注意事项。
$arg_*
变量 $arg_ 从请求 URI 中检索特定查询参数的值。
$args
$args 变量包含请求的查询字符串参数,不包括 '?' 字符。
$binary_remote_addr
$binary_remote_addr 变量包含客户端 IP 地址的二进制表示。
可缓存
$body_bytes_sent
$body_bytes_sent 变量在 NGINX 中包含发送给客户端的响应体字节数,不包括响应头。
可缓存
$bytes_sent
$bytes_sent 变量包含响应请求时发送给客户端的总字节数。
可缓存
$connection
The $connection 变量在 NGINX 中返回当前请求的连接描述符编号。
可缓存
$connection_requests
变量 $connection_requests 返回当前连接接收到的请求数量。
可缓存
$connection_time
$connection_time 变量返回与客户端建立连接所用的时间,单位为秒。
$content_length
变量 $content_length 包含客户端发送的 'Content-Length' HTTP 头的值,表示请求体的字节大小。
可缓存
$content_type
$content_type 变量在 NGINX 中保存 HTTP 响应的 Content-Type 头的值。
可缓存
$cookie_*
以 $cookie_ 为前缀的变量用于访问客户端发送的 HTTP cookie 的值。
可缓存
$document_root
变量 $document_root 返回当前 server 或 location block 的根目录,该目录由 NGINX 配置中定义。
$document_uri
变量 $document_uri 包含请求的 URI,不包括任何查询字符串,并对百分号编码的字符进行了解码。
$fastcgi_path_info
变量 $fastcgi_path_info 包含 FastCGI 请求中紧随脚本名后的额外路径信息。
$fastcgi_script_name
$fastcgi_script_name 变量包含正在由 FastCGI 服务器处理的脚本名称。
$grpc_internal_trailers
变量 $grpc_internal_trailers 包含 gRPC 响应的内部 trailer 字段。
$gzip_ratio
变量 $gzip_ratio 保存了当 NGINX 返回压缩响应时 gzip 达到的压缩比。
可缓存
$host
在 NGINX 中,$host 变量保存来自 HTTP 请求头的主机名,或配置中定义的服务器名称。
可缓存
$hostname
$hostname 变量返回在 server block 中指定的服务器主机名。
可缓存
$http_*
变量 $http_ 保存来自客户端请求的特定 HTTP 头的值,前缀为 'http_'。
可缓存
$http_cookie
$http_cookie 变量捕获来自传入 HTTP 请求的 Cookie 头的值。
可缓存
$http_host
$http_host 变量包含客户端在 HTTP 请求中发送的 Host 头的值。
可缓存
$http_referer
$http_referer 变量包含客户端请求中 Referer HTTP 头的值。
可缓存
$http_user_agent
$http_user_agent 变量包含客户端发送的 User-Agent HTTP 请求头的值。
可缓存
$http_via
$http_via 变量检索由上游代理在 HTTP 请求中发送的 'via' 头的值。
可缓存
$http_x_forwarded_for
$http_x_forwarded_for 变量包含来自客户端请求的 X-Forwarded-For 头的值,该值指示发起请求的客户端的原始 IP 地址。
可缓存
$https
$https 变量指示请求是否通过 HTTPS(安全)发出。
可缓存
$invalid_referer
如果请求的 Referer 根据指定的访问规则不被允许,则 $invalid_referer 变量被设置为 1。
可缓存
$is_args
变量 $is_args 指示当前请求的查询字符串中是否包含参数。
$is_request_port
变量 $is_request_port 指示请求是否是在非默认协议端口上发起的。
可缓存
$limit_conn_status
$limit_conn_status 返回 NGINX 中每个客户端的连接限制状态。
$limit_rate
$limit_rate 控制响应的最大传输速率,有效地限制每个连接的带宽使用。
$limit_req_status
变量 $limit_req_status 输出 NGINX 中请求限制机制的状态码。
$msec
变量 $msec 包含自纪元以来的当前时间(以毫秒为单位)。
$nginx_version
变量 $nginx_version 保存当前正在运行的 NGINX 实例的版本号。
可缓存
$pid
$pid 变量返回正在处理当前请求的 NGINX 工作进程的进程 ID (PID)。
可缓存
$pipe
$pipe 变量表示请求是否以 pipelined 方式处理。
可缓存
$proxy_add_via
变量 $proxy_add_via 用于在 NGINX 转发的 HTTP 请求中附加 'Via' 头。
可缓存
$proxy_add_x_forwarded_for
$proxy_add_x_forwarded_for 变量在代理设置中将客户端的 IP 地址追加到 X-Forwarded-For 头中。
可缓存
$proxy_host
变量 $proxy_host 包含被代理到的 upstream 服务器的主机名。
$proxy_internal_body_length
$proxy_internal_body_length 返回从被代理服务器内部接收的请求体长度。
$proxy_internal_chunked
$proxy_internal_chunked 指示内部响应是否应以 chunked transfer encoding 发送。
$proxy_internal_connection
$proxy_internal_connection 指示到被代理服务器的连接是内部连接还是外部连接。
$proxy_internal_host
$proxy_internal_host 返回请求的内部代理主机名。
$proxy_port
$proxy_port 变量返回被代理服务器的端口号。
$proxy_protocol_addr
$proxy_protocol_addr 返回来自 PROXY protocol 的客户端地址(如果已启用)。
可缓存
$proxy_protocol_port
当使用 PROXY protocol 时,$proxy_protocol_port 变量返回接收被代理请求的端口号。
可缓存
$proxy_protocol_server_addr
$proxy_protocol_server_addr 返回在 NGINX 中启用 proxy protocol 时由 proxy protocol…
可缓存
$proxy_protocol_server_port
变量 $proxy_protocol_server_port 返回由 PROXY protocol 指定的服务器端口号。
可缓存
$proxy_protocol_tlv_*
$proxy_protocol_tlv_ 变量用于访问包含在 Proxy Protocol TLV (Type-Length-Value) 格式中的信息。
可缓存
$query_string
变量 $query_string 包含客户端请求 URI 中的查询字符串部分,不包括前导的 '?'。
$realip_remote_addr
变量 $realip_remote_addr 在 NGINX 服务器部署在代理或负载均衡器之后时,包含原始客户端的 IP 地址。
可缓存
$realip_remote_port
变量 $realip_remote_port 保存发起请求的客户端的端口号,该端口号是 NGINX 从上游服务器接收到的。
可缓存
$realpath_root
$realpath_root 变量返回 location 块的根目录的规范文件名,解析任何符号链接。
$remote_addr
变量 $remote_addr 保存向 NGINX 服务器发出请求的客户端的 IP 地址。
可缓存
$remote_port
$remote_port 变量在 NGINX 中包含发出请求的客户端的端口号,可用于访问控制和日志记录。
可缓存
$remote_user
在 HTTP 基本认证期间,$remote_user 变量包含客户端提供的用户名。
可缓存
$request
$request 变量包含从客户端接收的完整请求行,包括 HTTP 方法、URI 和 HTTP 版本。
可缓存
$request_body
$request_body 变量包含客户端请求的原始主体。
可缓存
$request_body_file
$request_body_file 变量包含当请求体过大而无法放入内存时,用于保存该请求体的临时文件的路径。
可缓存
$request_completion
变量 $request_completion 返回请求处理的状态,指示请求是否已成功完成。
可缓存
$request_filename
$request_filename 变量包含客户端所请求文件的完整路径。
$request_id
$request_id 变量包含 NGINX 处理的每个请求的唯一标识符。
可缓存
$request_length
变量 $request_length 返回客户端请求主体的总大小(以字节为单位)。
$request_method
$request_method 变量在 NGINX 中包含当前请求使用的 HTTP 方法。
$request_port
$request_port 变量包含客户端用于向服务器发送请求的端口号。
可缓存
$request_time
$request_time 包含处理请求所用的总时间,单位为秒,精确到毫秒。
$request_uri
变量 $request_uri 包含客户端发送的原始请求 URI(如果存在,则包括查询字符串)。
可缓存
$scheme
NGINX 中的 $scheme 变量返回当前请求的协议(HTTP 或 HTTPS)。
可缓存
$secure_link
变量 $secure_link 用于基于哈希令牌验证对资源的安全链接。
可缓存
$secure_link_expires
$secure_link_expires 返回 NGINX 中安全链接的过期时间戳。
可缓存
$sent_http_*
以 $sent_http_ 前缀开头的变量返回发送给客户端的 HTTP 响应头。
可缓存
$sent_http_cache_control
$sent_http_cache_control 包含在 HTTP 响应中发送的 'Cache-Control' 头的值。
可缓存
$sent_http_connection
变量 $sent_http_connection 保存在 HTTP 响应中发送给客户端的 'Connection' 头的值。
可缓存
$sent_http_content_length
变量 $sent_http_content_length 返回 HTTP 响应中发送的 Content-Length 头的值。
可缓存
$sent_http_content_type
$sent_http_content_type 变量保存 NGINX 在 HTTP 响应中发送的 Content-Type 头部。
可缓存
$sent_http_keep_alive
NGINX 中的 $sent_http_keep_alive 变量包含响应中发送给客户端的 'Keep-Alive' 头的值。
可缓存
$sent_http_last_modified
变量 $sent_http_last_modified 包含服务器在响应客户端时返回的 Last-Modified 头的值。
可缓存
$sent_http_link
$sent_http_link 变量包含 NGINX 发送的 Link HTTP 响应头的值。
可缓存
$sent_http_location
当发生内部重定向时,$sent_http_location 变量包含响应中发送的 HTTP 'Location' 首部。
可缓存
$sent_http_transfer_encoding
$sent_http_transfer_encoding 包含发送到客户端的 'Transfer-Encoding' 头的值。
可缓存
$sent_trailer_*
变量 $sent_trailer_ 是一个前缀变量,用于在 NGINX 中检索随 HTTP 响应发送的尾部字段。
可缓存
$server_addr
$server_addr 变量返回在 NGINX 配置中指定的服务器的 IP 地址。
可缓存
$server_name
$server_name 变量表示提供该请求的虚拟主机的名称。
可缓存
$server_port
$server_port 变量返回接收当前请求的端口号。
可缓存
$server_protocol
$server_protocol 变量包含用于当前请求的协议,通常为 HTTP 或 HTTPS。
可缓存
$ssl_alpn_protocol
变量 $ssl_alpn_protocol 包含在 TLS 握手期间选择的应用层协议协商 (ALPN) 协议。
可缓存
$ssl_cipher
$ssl_cipher 变量包含用于 SSL/TLS 连接的加密套件名称。
可缓存
$ssl_ciphers
$ssl_ciphers 变量包含用于当前连接的 SSL/TLS 密码套件列表。
可缓存
$ssl_client_cert
当启用 SSL 客户端验证时,变量 $ssl_client_cert 包含客户端的 SSL 证书,形式为 PEM 编码的字符串。
可缓存
$ssl_client_escaped_cert
$ssl_client_escaped_cert 变量包含在 SSL 握手期间由客户端发送的 PEM-encoded 和 URL-escaped 的客户端证书。
可缓存
$ssl_client_fingerprint
变量 $ssl_client_fingerprint 表示客户端 SSL 证书的指纹。
可缓存
$ssl_client_i_dn
$ssl_client_i_dn 变量保存客户端在 SSL/TLS 会话期间的身份可分辨名称 (DN)。
可缓存
$ssl_client_i_dn_legacy
变量 $ssl_client_i_dn_legacy 返回客户端 SSL 证书的旧版可分辨名称 (DN) 字符串表示。
可缓存
$ssl_client_raw_cert
变量 $ssl_client_raw_cert 包含客户端 SSL 证书的原始字节。
可缓存
$ssl_client_s_dn
$ssl_client_s_dn 变量包含客户端 SSL 证书的主题可分辨名称。
可缓存
$ssl_client_s_dn_legacy
$ssl_client_s_dn_legacy 变量包含 SSL 客户端证书的遗留主题可分辨名称(DN)。
可缓存
$ssl_client_serial
$ssl_client_serial 变量包含在安全连接中使用的客户端 SSL 证书的序列号。
可缓存
$ssl_client_sigalg
变量 $ssl_client_sigalg 包含客户端 SSL 证书使用的签名算法。
可缓存
$ssl_client_v_end
变量 $ssl_client_v_end 包含客户端 SSL 连接的结束时间,单位为自 epoch 起的秒数。
可缓存
$ssl_client_v_remain
$ssl_client_v_remain 返回在处理当前证书之后,SSL 客户端证书链中剩余的字节数。
可缓存
$ssl_client_v_start
$ssl_client_v_start 返回在 SSL 握手完成并建立客户端连接时的时间戳。
可缓存
$ssl_client_verify
$ssl_client_verify 表示 SSL 连接中客户端证书的验证状态。
可缓存
$ssl_curve
$ssl_curve 变量返回用于 SSL/TLS 连接的椭圆曲线的名称。
可缓存
$ssl_curves
变量 $ssl_curves 返回在 SSL 握手期间协商的椭圆曲线列表。
可缓存
$ssl_early_data
变量 $ssl_early_data 指示在 SSL/TLS 连接中是否已接收到早期数据。
$ssl_ech_outer_server_name
$ssl_ech_outer_server_name 返回在当前 SSL 连接的 Encrypted ClientHello 中使用的外层服务器名称。
可缓存
$ssl_ech_status
$ssl_ech_status 变量表示当前 SSL 连接中对 Encrypted ClientHello (ECH) 的支持状态。
可缓存
$ssl_protocol
$ssl_protocol 包含用于连接的 SSL/TLS 协议版本。
可缓存
$ssl_server_name
变量 $ssl_server_name 包含在 SSL 握手期间与请求匹配的、由 'server_name' 指令指定的服务器名称。
可缓存
$ssl_session_id
$ssl_session_id 变量包含 NGINX 服务器上当前 SSL 会话的唯一标识符。
可缓存
$ssl_session_reused
The $ssl_session_reused 变量指示当前连接是否重用了现有的 SSL 会话。
可缓存
$ssl_sigalg
$ssl_sigalg 变量返回用于安全连接的 SSL 握手中的签名算法。
可缓存
$status
变量 $status 返回正在由 NGINX 处理的当前请求的 HTTP 响应状态码。
$tcpinfo_rcv_space
变量 $tcpinfo_rcv_space 返回为入站 TCP 缓冲区分配的内存量。
$tcpinfo_rtt
$tcpinfo_rtt 变量返回 TCP 连接的往返时间 (RTT),单位为微秒。
$tcpinfo_rttvar
$tcpinfo_rttvar 变量以微秒为单位返回 TCP 连接的 RTT 方差。
$tcpinfo_snd_cwnd
$tcpinfo_snd_cwnd 返回以字节为单位的 TCP 发送拥塞窗口大小。
$time_iso8601
变量 $time_iso8601 返回 ISO 8601 格式的当前时间。
$time_local
$time_local 变量以 Common Log Format 使用的格式返回当前本地时间。
$uid_got
$uid_got 变量返回请求所属者的用户 ID,这对访问控制和日志记录非常有用。
可缓存
$uid_reset
The $uid_reset 变量指示是否应根据访问控制规则重置请求的 UID。
可缓存
$uid_set
在 NGINX 中,$uid_set 变量包含为当前请求上下文设置的用户 ID。
可缓存
$uri
NGINX 中的 $uri 变量返回所请求资源的 URI 部分,不包含域名或协议信息。