nginx 的 ngx_http_core_module 模块支持与 apache 服务器变量名称相匹配的嵌入式变量。首先,这些是代表客户端请求头的变量,比如 $http_user_agent、$http_cookie 等。还有其他变量,如下:
请求行中的参数名称
请求行中的参数
二进制形式的客户端地址,IPv4 地址的值长度始终为 4 个字节,IPv6 地址的值长度始终为 16 个字节
发送到客户端的字节数,不包括响应头;此变量与 apache 的 mod_log_config 模块的“%B”参数兼容
发送到客户端的字节数 (1.3.8, 1.2.5)
连接序列号(1.3.8、1.2.5)
通过当前连接发出的请求数 (1.3.8, 1.2.5)
以毫秒为单位的连接时间(1.19.10)
表示 Http 的请求头 “Content-Length” 字段
表示 Http 的请求头 “Content-Type” 字段
Cookie 名称
当前请求的 root 或 alias 指令的值
与 $uri 相同
按此优先顺序取值:
(1)请求行中的主机名
(2)请求头中的 “host” 字段中的主机名
(3)匹配该请求的服务器主机名
主机名
任意请求头字段,变量名的最后一部分是字段名转换为小写,短划线替换为下划线
如果连接在 SSL 模式下运行,则为 “on”;否则为空字符串;
“?”如果请求行有参数,则为 “?”;否则为空字符串;
设置此变量可启用响应速率限制;见 limit_rate 指令
当前时间,单位为毫秒 (1.3.9, 1.2.6)
nginx 版本信息
工作进程的 PID
如果请求被流水线化,则为 “p”;否则,为 “.” (1.3.12, 1.2.7)
来自 PROXY 协议头的客户端地址 (1.5.12)
PROXY 协议必须事先通过在 listen 指令中设置 proxy_protocol 参数来启用。
来自 PROXY 协议头的客户端端口 (1.11.0)
client port from the PROXY protocol header (1.11.0)
PROXY 协议必须事先通过在 listen 指令中设置 proxy_protocol 参数来启用。
来自 PROXY 协议头的服务器地址 (1.17.6)
PROXY 协议必须事先通过在 listen 指令中设置 proxy_protocol 参数来启用。
来自 PROXY 协议头的服务器端口 (1.17.6)
PROXY 协议必须事先通过在 listen 指令中设置 proxy_protocol 参数来启用。
与 $args 相同
与当前请求的 root 或 alias 指令值对应的绝对路径名,所有符号链接都解析为真实路径
客户端地址
客户端端口
基本身份验证提供的用户名
完整的原始请求行
请求体
当将请求体读入内存缓冲区时,该变量的值在proxy_pass、fastcgi_pass、uwsgi_pass和scgi_pass指令处理的位置中可用。
带有请求正文的临时文件的名称
在处理结束时,需要删除该文件。要始终将请求正文写入文件,需要启用 client_body_in_file_only。当在代理请求中或在对 FastCGI/uwsgi/SCGI 服务器的请求中传递临时文件的名称时,应分别通过 proxy_pass_request_body off、fastcgi_pass_request_body off、uwsgi_pass_request_body off 或 scgi_pass_request_body off 指令禁用传递请求正文。
如果请求已完成,则为 “OK”;否则为空字符串;
当前请求的文件路径,基于 root 或 alias 指令,以及请求 URI
从 16 个随机字节生成的唯一请求标识符,十六进制 (1.11.0)
请求长度(包括请求行、头部和请求体)(1.3.12、1.2.7)
请求方法,通常是 “GET” 或 “POST”
以毫秒为单位的请求处理时间(1.3.9, 1.2.6)
从客户端读取第一个字节以来经过的时间
完整的原始请求 URI(带参数)
请求方案,“http” 或 “https”
任意响应头字段;
变量名的最后一部分是字段名转换为小写,短划线替换为下划线
在响应结束时发送的任意字段(1.13.2);
变量名的最后一部分是字段名转换为小写,短划线替换为下划线
接受请求的服务器地址
计算这个变量的值通常需要一次系统调用。为了避免系统调用,listen 指令必须指定地址并使用 bind 参数。
接受请求的服务器名称
接受请求的服务器端口
请求协议,通常是 “HTTP/1.0”、“HTTP/1.1” 或 “HTTP/2.0”
响应状态(1.3.2、1.2.2)
有关客户端 TCP 连接的信息;在支持 TCP_INFO 套接字选项的系统上可用
ISO 8601 标准格式的本地时间 (1.3.12, 1.2.7)
通用日志格式的本地时间 (1.3.12, 1.2.7)
请求中的当前 URI
$uri 的值可能会在请求处理期间发生变化,例如在进行内部重定向或使用索引文件时。