Nginx变量.md

ngx_http_core_module

ngx_http_core_module模块支持名称与Apache服务器变量匹配的嵌入式变量。 首先,这些是表示客户请求头字段的变量,例如$ http_user_agent,$ http_cookie等等。 还有其他变量:

变量含义
$arg_name 请求行中的参数名称
$args 请求行中的参数
$binary_remote_addr 客户端地址为二进制形式,值的长度对于IPv4地址始终为4字节,对于IPv6地址为16字节
$body_bytes_sent 发送到客户端的字节数,不计数响应头; 此变量与mod_log_config Apache模块的“%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”请求头字段中的主机名,或匹配请求的服务器名称
$hostname host name
$http_name 任意请求头字段; 变量名的最后一部分是字段名称转换为小写字母,破折号用下划线替换
$https “on”如果连接在SSL模式下运行,否则为空字符串
$is_args “?”如果请求行有参数,否则为空字符串
$limit_rate 设置此变量启用响应速率限制; 请参阅limit_rate
$msec 当前时间(以秒为单位)与毫秒分辨率(1.3.9,1.2.6)
$nginx_version nginx version
$pid PID of the worker process
$pipe “p”如果请求是流水线的,“.”否则(1.3.12,1.2.7)
$proxy_protocol_addr 客户端地址从PROXY协议header,否则为空字符串(1.5.12)必须先通过在listen指令中设置proxy_protocol参数来启用PROXY协议。
$proxy_protocol_port 客户端端口从PROXY协议头,否则为空字符串(1.11.0)必须先通过在listen指令中设置proxy_protocol参数来启用PROXY协议。
$query_string same as $args
$realpath_root 对应于当前请求的根或别名指令的值的绝对路径名,所有符号链接解析为实际路径
$remote_addr client address
$remote_port client port
$remote_user 用户名提供基本认证
$request full original request line
$request_body 请求正文,当请求主体被读取到内存缓冲区时,变量的值在proxy_pass,fastcgi_pass,uwsgi_pass和scgi_pass指令处理的位置可用。
$request_body_file 具有请求正文的临时文件的名称。在处理结束时,需要删除文件。 要始终将请求体写入文件,需要启用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指令禁用传递请求主体 。
$request_completion 如果请求已完成,则返回“OK”,否则返回空字符串
$request_filename 文件路径,基于根或别名指令,以及请求URI
$request_id 从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 任意响应头字段; 变量名的最后一部分是字段名称转换为小写字母,破折号用下划线替换
$server_addr 接受请求的服务器的地址,计算此变量的值通常需要一次系统调用。 为了避免系统调用,listen指令必须指定地址并使用bind参数。
$server_name 接受请求的服务器的名称
$server_port 接受请求的服务器端口
$server_protocol 请求协议,通常是“HTTP / 1.0”,“HTTP / 1.1”或“HTTP / 2.0”
$status response status (1.3.2, 1.2.2)
$tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd, $tcpinfo_rcv_space 有关客户端TCP连接的信息; 在支持TCP_INFO套接字选项的系统上可用
$time_iso8601 ISO 8601标准格式的本地时间(1.3.12,1.2.7)
$time_local 公共日志格式中的本地时间(1.3.12,1.2.7)
$uri 请求中的当前URI,规范化。$uri的值可以在请求处理期间改变,例如。 当进行内部重定向时,或当使用索引文件时。

#ngx_http_fastcgi_module
ngx_http_fastcgi_module模块支持嵌入式变量,可以使用fastcgi_param指令设置参数:

$fastcgi_script_name

请求URI,或者如果URI以斜杠结尾,请求URI带有由附加的fastcgi_index指令配置的索引文件名。 此变量可用于设置在PHP中确定脚本名称的SCRIPT_FILENAME和PATH_TRANSLATED参数。 例如,对于带有以下指令的“/ 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参数。

ngx_http_gzip_module

$gzip_ratio

实现的压缩比,计算为原始和压缩响应大小之间的比率。

ngx_http_memcached_module

$memcached_key

定义用于从memcached服务器获取响应的键。

ngx_http_proxy_module

ngx_http_proxy_module模块支持嵌入式变量,可以使用proxy_set_header指令来组成头文件:

$proxy_host

proxy_pass指令中指定的代理服务器的名称和端口;

$proxy_port

proxy_pass指令中指定的代理服务器的端口或协议的默认端口;

$proxy_add_x_forwarded_for

“X-Forwarded-For”客户端请求头字段,其中附加了$ remote_addr变量,用逗号分隔。 如果客户请求头中没有“X-Forwarded-For”字段,$proxy_add_x_forwarded_for变量等于$remote_addr变量。

ngx_http_realip_module

$realip_remote_addr

保留原始客户端地址(1.9.7)

$realip_remote_port

保留原始客户端端口(1.11.0)

ngx_http_referer_module

$invalid_referer

空字符串,如果“Referer”请求头字段值被视为有效,否则为“1”。

ngx_http_secure_link_module

$secure_link

链接检查的状态。 具体值取决于所选的操作模式。

$secure_link_expires

请求中传递的链接的生存期; 意图仅在secure_link_md5指令中使用。

ngx_http_slice_module

$slice_range

当前切片范围以HTTP字节范围格式,例如,bytes = 0-1048575。

ngx_http_ssl_module

$ssl_cipher

返回用于已建立的SSL连接的密码字符串;

$ssl_ciphers

返回客户端支持的密码列表(1.11.7)。 已知密码以名称列出,未知以十六进制显示,例如:

AES128-SHA:AES256-SHA:0x00ff

仅当使用OpenSSL版本1.0.2或更高版本时,才完全支持该变量。 对于较旧版本,此变量仅可用于新会话,并仅列出已知密码。

$ssl_client_cert

以已建立的SSL连接的PEM格式返回客户端证书,每行除了第一个前面带有制表符字符; 这是为了在proxy_set_header指令中使用;

$ssl_client_fingerprint

返回已建立的SSL连接的客户端证书的SHA1指纹(1.7.1);

$ssl_client_i_dn

根据RFC 2253(1.11.6)返回已建立的SSL连接的客户端证书的“issuer DN”字符串;

$ssl_client_i_dn_legacy

返回已建立的SSL连接的客户端证书的“issuer DN”字符串;
在1.11.6版之前,变量名是$ ssl_client_i_dn。

$ssl_client_raw_cert

以已建立的SSL连接的PEM格式返回客户端证书;

$ssl_client_s_dn

根据RFC 2253(1.11.6)返回已建立的SSL连接的客户端证书的“subject DN”字符串;

$ssl_client_s_dn_legacy

返回已建立的SSL连接的客户端证书的“subject DN”字符串;
在1.11.6版之前,变量名是$ ssl_client_s_dn。

$ssl_client_serial

返回已建立的SSL连接的客户端证书的序列号;

$ssl_client_v_end

返回客户端证书的结束日期(1.11.7);

$ssl_client_v_remain

返回客户端证书到期的天数(1.11.7);

$ssl_client_v_start

返回客户端证书的开始日期(1.11.7);

$ssl_client_verify

返回客户端证书验证的结果:“SUCCESS”,“FAILED:reason”和“NONE”(如果证书不存在);
在1.11.7版之前,“FAILED”结果不包含原因字符串。

$ssl_curves

返回客户端支持的曲线列表(1.11.7)。 已知的曲线以名称列出,未知的以十六进制显示,例如:

0x001d:prime256v1:secp521r1:secp384r1

仅当使用OpenSSL版本1.0.2或更高版本时,才支持该变量。 对于旧版本,变量值将是一个空字符串。
该变量仅适用于新会话。

$ssl_protocol

返回已建立的SSL连接的协议;

$ssl_server_name

返回通过SNI请求的服务器名称(1.7.0);

$ssl_session_id

返回已建立的SSL连接的会话标识;

$ssl_session_reused

如果SSL会话被重用,则返回“r”,否则返回“。”,否则返回(1.5.11)。

ngx_http_stub_status_module

$connections_active

与活动连接值相同;

$connections_reading

与读数值相同;

$connections_writing

与写入值相同;

$connections_waiting

与等待值相同。

ngx_http_upstream_module

$upstream_addr

保留IP地址和端口或上游服务器的UNIX域套接字的路径。 如果在请求处理期间联系了多个服务器,则它们的地址由逗号分隔,例如。 “192.168.1.1:80,192.168.1.2:80,unix:/ tmp / sock”。 如果由“X-Accel-Redirect”或error_page发起的从一个服务器组到另一个服务器组的内部重定向发生,则来自不同组的服务器地址由冒号分隔。 “192.168.1.1:80,192.168.1.2:80,unix:/ tmp / sock:192.168.10.1:80,192.168.10.2:80”。

$upstream_bytes_received

从上游服务器接收的字节数(1.11.4)。 来自多个连接的值由逗号和冒号分隔,如$ upstream_addr变量中的地址。

$upstream_cache_status

保持访问响应缓存的状态(0.8.3)。 状态可以是“MISS”,“BYPASS”,“EXPIRED”,“STALE”,“UPDATING”,“REVALIDATED”或“HIT”。

$upstream_connect_time

保持与上游服务器建立连接的时间(1.9.1); 时间以秒为单位,以毫秒为单位。 在SSL的情况下,包括在握手上花费的时间。 几个连接的时间由逗号和冒号分隔,如$ upstream_addr变量中的地址。

$upstream_cookie_name

具有由上游服务器在“Set-Cookie”响应头字段(1.7.1)中发送的指定名称的cookie。 仅保存来自最后一个服务器的响应的cookie。

$upstream_header_time

保持从上游服务器接收响应头的时间(1.7.10); 时间以秒为单位,以毫秒为单位。 几个响应的时间由逗号和冒号分隔,如$ upstream_addr变量中的地址。

$upstream_http_name

保留服务器响应头字段。 例如,“Server”响应头字段可通过$ upstream_http_server变量使用。 将头字段名转换为变量名的规则与以“$ http_”开头的变量相同。 只有来自最后一个服务器的响应的头字段被保存。

$upstream_response_length

保持从上游服务器获得的响应的长度(0.7.27); 长度以字节为单位。 几个响应的长度由逗号和冒号分隔,如$ upstream_addr变量中的地址。

$upstream_response_time

保持接收来自上游服务器的响应所花费的时间; 时间以秒为单位,以毫秒为单位。 几个响应的时间由逗号和冒号分隔,如$ upstream_addr变量中的地址。

$upstream_status

保存从上游服务器获得的响应的状态码。 多个响应的状态代码由逗号和冒号分隔,如$ upstream_addr变量中的地址。

ngx_http_userid_module

$uid_got

Cookie名称和收到的客户标识符。

$uid_reset

如果变量设置为不为“0”的非空字符串,则客户机标识符将重置。 特殊值“log”另外导致关于重置标识符的消息输出到error_log。

$uid_set

Cookie名称和已发送的客户端标识符。

posted @ 2017-03-14 23:58  ProfiBus  阅读(1189)  评论(0编辑  收藏  举报