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 部分,不包含域名或协议信息。