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名称和已发送的客户端标识符。

Nginx变量.md的更多相关文章

  1. Nginx变量的实现机制

    Nginx有两种定义变量的方式,一种是在配置文件中使用set指令(由rewrite模块提供支持),另一种是在模块内定义变量. 变量相关结构体: struct ngx_http_variable_s { ...

  2. 关于NGINX变量的一些测试结果

    作为NGINX变量,不像正规语言那么正式. 但处理自定义和内部变量时,这些操作,也是少不了的. geo $dollar { default "$"; } server { list ...

  3. Nginx 变量漫谈(八)

    与 $arg_XXX 类似,我们在 (二) 中提到过的内建变量 $cookie_XXX 变量也会在名为 XXX 的 cookie 不存在时返回特殊值“没找到”:     location /test  ...

  4. Nginx 变量漫谈(七)

    在 (一) 中我们提到过,Nginx 变量的值只有一种类型,那就是字符串,但是变量也有可能压根就不存在有意义的值.没有值的变量也有两种特殊的值:一种是“不合法”(invalid),另一种是“没找到”( ...

  5. Nginx 变量漫谈(五)

    前面在 (二) 中我们已经了解到变量值容器的生命期是与请求绑定的,但是我当时有意避开了“请求”的正式定义.大家应当一直默认这里的“请求”都是指客户端发起的 HTTP 请求.其实在 Nginx 世界里有 ...

  6. Nginx 变量漫谈(四)

    在设置了“取处理程序”的情况下,Nginx 变量也可以选择将其值容器用作缓存,这样在多次读取变量的时候,就只需要调用“取处理程序”计算一次.我们下面就来看一个这样的例子:     map $args  ...

  7. Nginx 变量漫谈(三)

    也有一些内建变量是支持改写的,其中一个例子是 $args. 这个变量在读取时返回当前请求的 URL 参数串(即请求 URL 中问号后面的部分,如果有的话 ),而在赋值时可以直接修改参数串.我们来看一个 ...

  8. Nginx 变量漫谈(二)

    关于 Nginx 变量的另一个常见误区是认为变量容器的生命期,是与 location 配置块绑定的.其实不然.我们来看一个涉及“内部跳转”的例子:     server {        listen ...

  9. Nginx 变量漫谈(一)

    Nginx 的配置文件使用的就是一门微型的编程语言,许多真实世界里的 Nginx 配置文件其实就是一个一个的小程序.当然,是不是“图灵完全的”暂且不论,至少据我观察,它在设计上受 Perl 和 Bou ...

随机推荐

  1. EventLog组件读写事件日志

    使用.Net中的EventLog控件使您可以访问或自定义Windows 事件日志,事件日志记录关于重要的软件或硬件事件的信息.通过 EventLog,可以读取现有日志,向日志中写入项,创建或删除事件源 ...

  2. lua模块化

    main.lua local main = require("my") main.greeting() my.lua local foo = {} local function g ...

  3. K8S基础概念

    一.核心概念 1.Node Node作为集群中的工作节点,运行真正的应用程序,在Node上Kubernetes管理的最小运行单元是Pod.Node上运行着Kubernetes的Kubelet.kube ...

  4. [AngularJS] “多重路由”嵌套模块——AngularJS“路由”嵌套学习资料教程

    这是小编的一些学习资料,理论上只是为了自己以后学习需要的,但是还是需要认真对待的 以下内容仅供参考,请慎重使用学习 1.AngularJS路由嵌套 Angularjs本身自带路由模块,可以满足通过不同 ...

  5. Maven + Spring4

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  6. 直接拿去用!每个App都会用到的LoadingLayout

    前言 项目里都会遇到几种页面,分别为加载中.无网络.无数据.出错四种情况,经常要使用,所以封成库引用了,方便使用,顺便分享出来.先看一下效果: 原理比较简单,继承FrameLayout,在xml渲染完 ...

  7. ew代理实战

    前言 渗透内网代理必不可少,本文做个记录 正文 工具下载地址 http://rootkiter.com/EarthWorm/ ssocksd开启 socks5 代理 环境 代理:192.168.211 ...

  8. Android Apk增量更新

    前言 有关APK更新的技术比较多,例如:增量更新.插件式开发.热修复.RN.静默安装. 下面简单介绍一下: 什么是增量更新?   增量更新就是原有app的基础上只更新发生变化的地方,其余保持原样. 与 ...

  9. dbms_random 包的使用

    dbms_random是一个可以生成随机数值或者字符串的程序包. 这个包有 initialize(),seed(),terminate(),value(),normal(),random(),stri ...

  10. 记录下使用iis7代理node.js写的网站程序

    昨天晚上一个学弟的紧急求救,说了自己接的单子做了一个网站,使用了自己熟悉的技术——node.js+mongdb,但当看到部署环境惊呆了,是 windows+sqlserver.这些都不是关键,关键是服 ...