nginx http_fastcgi模块内嵌变量

此页面版本:2016-06-15
本文介绍nginx的http_fastcgi模块的内嵌变量

ngx_http_fastcgi_module模块支持内嵌变量,可以将它们用在fastcgi_param指令设置的参数中:

$fastcgi_script_name

请求URI或在请求URI以“/”结尾时,将fastcgi_index指令设置的索引文件添加到URI后面的值。变量可以用于设置SCRIPT_FILENAME和PATH_TRANSLATED参数,它们决定了PHP中脚本的名称。例如,请求“/info/”与下面的指令:

fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;

SCRIPT_FILENAME参数将等于“/home/www/scripts/php/info/index.php”。
当使用fastcgi_split_path_info指令时,$fastcgi_script_name变量等于指令中第一个捕获的值。


$fastcgi_path_info

fastcgi_split_path_info指令设置的第二个捕获的值,该变量可以用于设置PATH_INFO参数。

nginx http_core模块内嵌变量

此页面版本:2016-06-15
本文介绍nginx的http_core模块的内嵌变量

ngx_http_core_module模块支持内嵌变量与Apache服务器变量名称一致。首先,这些变量体现请求头域,如$http_user_agent,$http_cookie等。还有其他的变量:

$arg_name
在请求中name参数


$args
请求的所有参数


$binary_remote_addr
客户端地址的二进制形式,值的长度总是4个字节


$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
名称为name的cookie的值


$document_root
当前请求的root或alias指令的值


$document_uri
同$uri


$host
按此优先级:请求中的Host字段,或服务器名称匹配请求的值


$hostname
主机名


$http_name
任意请求头域,变量名的最后一部分name是将域转为小写并将“-”替换为“_”


$https
如果通过SSL连接则值为“on”,否则是空字符串


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


$limit_rate
设置此值开启响应的限速


$msec
当前时间的秒数,精确到毫秒(1.3.9+, 1.2.6+)


$nginx_version
nginx版本


$pid
工作进程的PID


$pipe
如果请求是流水线(pipelined)值为“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
将一个绝对路径与符号连接解析成相对路径


$remote_addr
客户端地址


$remote_port
客户端端口


$remote_user
Basic验证的用户名


$request
完整的请求行


$request_body
请求内容


$request_body_file
带有请求内容的临时文件名称


$request_completion
如果请求完成了,值为“OK”,否则为空字符串


$request_filename
当前请求的文件路径,基于root和alias指令与请求URI


$request_id
唯一的请求标识符,从16个随机字节生成,为16进制(1.11.0)


$request_length
请求长度(包括请求行、头部、正文内容)(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将名称转为小写并将“-”替换为“_”


$server_addr
服务器接收请求的地址
计算该变量的值需要一次系统调用,要避免系统调用,listen指令必须定义地址并使用bind参数


$server_name
处理请求的服务器名称


$server_port
处理请求的服务器端口


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


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


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


$time_iso8601
ISO 8601格式的本地时间(1.3.12+, 1.2.7+)


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


$uri
当前请求的标准化URI
$uri的值在处理请求时可能会发生变化,如内部重定向或使用索引文件