首页 » Linux » lnmp » Nginx之内嵌变量详解

Nginx之内嵌变量详解

 

$arg_name
请求行中的name参数

$args
请求行中的参数

$binary_remote_addr
客户端地址为二进制形式,IPv4地址值的长度是4字节,IPv6地址值的长度是16字节

$body_bytes_sent
返回给客户端的字节数,不包括响应头。此变量与Apache模块mod_log_config的“%B”参数兼容

$bytes_sent
返回给客户端的字节数 (1.3.8, 1.2.5)

$connection
连接的序列号 (1.3.8, 1.2.5)

$connection_requests
当前通过连接发出的请求数 (1.3.8, 1.2.5)

$content_length
请求头“Content-Length”的值

$content_type
请求头“Content-Type”的值

$cookie_name
cookie名称

$document_root
当前请求的root根目录或alias别名的值

$document_uri
和$uri相同

$host
“host”请求头字段的值,如果没有该主机头,则为处理请求的server名称

$hostname
机器名称

$http_name
任意请求头的值,变量名的后半部分“name”可以替换成任意请求头的名称。例如在配置文件中需要获取user-agent值,将“-”换成下划线“_”,如果有大写字母,需要替换成小写字母,即$http_user_agent:

$https
如果连接是ssl模式,返回值为“on”,否则返回空字符串

$is_args
如果请求行带有参数,返回值为“?”,否则返回空字符串

$limit_rate
用于限制连接的传输速率

$msec
当前时间单位是秒,精度是毫秒 (1.3.9, 1.2.6)

$nginx_version
nginx版本号

$pid
worker进程的PID

$pipe
如果请求来自管道,值为"p",否则为“.” (1.3.12, 1.2.7)

$proxy_protocol_addr
获取代理访问服务器的客户端地址,如果直接访问,该值为空字符串 (1.5.12)
设置代理前,必须通过listen指令设置proxy_protocol参数来启用

$proxy_protocol_port
获取代理访问服务器的端口地址,如果直接访问,该值为空字符串 (1.11.0)
设置代理前,必须通过listen指令设置proxy_protocol参数来启用

$query_string
与$args相同

$realpath_root
当前请求的root根目录或alias别名的绝对路径,会将所有软连接解析成真实文件路径

$remote_addr
客户端IP地址

$remote_port
客户端端口

$remote_user
基础用户认证提供的用户名,经过Auth Basic Module验证的用户名

$request
客户端的请求地址

$request_body
客户端请求主体此变量可在location中使用,将请求主体通过proxy_pass, fastcgi_pass, uwsgi_pass, 和scgi_pass传递给下一级的代理服务器

$request_body_file
客户端请求主体临时文件名
文件处理结束后,此文件将被删除,如果希望总是将请求主体写入文件,需要设置client_body_in_file_only,如果将此文件传递给后端代理服务器,需要禁用request body,即设置proxy_pass_request_body off,fastcgi_pass_request_body off,uwsgi_pass_request_body off,或scgi_pass_request_body off

$request_completion
如果请求成功,返回"OK",否则返回空字符串

$request_filename
基于root或alias,以及请求的URI,得到当前请求的文件路径

$request_id
由16个随机字节生成唯一的请求标识符,以十六进制表示 (1.11.0)

$request_length
请求长度(包括请求地址、http请求头和请求主体) (1.3.12, 1.2.7)

$request_method
客户端请求方法,通常是“GET”或“POST”

$request_time
客户端请求处理的时间,单位为秒,精度毫秒 (1.3.9, 1.2.6); 从客户端接收到第一个字节开始计算

$request_uri
客户端请求参数的原始URI(带参数)

$scheme
请求协议类型,“http”或“https”

$sent_http_name
任意响应头字段的值,变量名的后半部分“name”可以替换成任意响应头的名称。例如在配置文件中需要获取Cache-Control值,将“-”换成下划线“_”,如果有大写字母,需要替换成小写字母,即$sent_http_Cache_Control

$sent_trailer_name
响应结束时发送的任意字段(1.13.2),变量名的后半部分“name”可以替换成任意响应头的名称

$server_addr
接受请求的服务器地址
计算此变量的值通常需要一次系统调用,为了避免系统调用,必须指定listen的地址,并且使用bind参数

$server_name
接受请求的服务器名称

$server_port
接受请求的服务器端口

$server_protocol
请求协议,通常是“HTTP/1.0”, “HTTP/1.1”, or “HTTP/2.0”

$status
响应状态码 (1.3.2, 1.2.2)

$tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd, $tcpinfo_rcv_space
客户端TCP连接信息,在支持的TCP_INFO套接字选项的系统上可用

$time_iso8601
服务器时间ISO 8610格式(1.3.12, 1.2.7)

$time_local
通用日志格式的本地时间 (1.3.12, 1.2.7)

$uri
当前请求规范化后的URI,等同于$document_uri$uri的值可能随请求的处理过程而变化,例如在内部进行跳转时,或使用默认页时

原文链接:Nginx之内嵌变量详解,转载请注明来源!

0