Nginx 内嵌变量

Nginx 内嵌变量是非常常用的,记录下备查。 Nginx 内嵌变量由 ngx_http_core_module 模块支持,变量名与 Apache 服务器对应,这些变量可以表示客户端的请求头字段,诸如 $http_user_agent、$http_cookie 等等。 nginx 也支持其他变量: |参数名称|说明| |-|-| |$arg_name|请求中的的参数名,即 “?” 后面的 arg_name=arg_value 形式的 arg_name,如 /index.php?www=www.tanqub.com,可以用 $arg_www 就是 www.tanqub.com| |$args|请求中的参数值| |$binary_remote_addr|客户端地址的二进制形式,固定长度为 4 个字节| |$body_bytes_sent|传输给客户端的字节数,响应头不计算在内;这个变量和 Apache 的 mod_log_config 模块中的 “% B” 参数保持兼容| |$bytes_sent|传输给客户端的字节数| |$connection|TCP 连接的序列号| |$connection_requests|TCP 连接当前的请求数量| |$content_length|“Content-Length” 请求头字段| |$content_type|“Content-Type” 请求头字段| |$cookie_name|cookie 名称| |$document_root|当前请求的文档根目录或别名| |$document_uri|同 $uri| |$host|优先级如下:HTTP 请求行的主机名 >”HOST” 请求头字段 > 符合请求的服务器名| |$hostname|主机名| |$http_name|匹配任意请求头字段; 变量名中的后半部分 “name” 可以替换成任意请求头字段,如在配置文件中需要获取 http 请求头:“Accept-Language”,那么将 “-” 替换为下划线,大写字母替换为小写,形如:$http_accept_language 即可。| |$https|如果开启了 SSL 安全模式,值为 “on”,否则为空字符串。| |$is_args|如果请求中有参数,值为 “?”,否则为空字符串。| |$limit_rate|用于设置响应的速度限制,详见 limit_rate。| |$msec|当前的 Unix 时间戳 (1.3.9, 1.2.6)| |$nginx_version|nginx 版本| |$pid|工作进程的 PID| |$pipe|如果请求来自管道通信,值为 “p”,否则为 “.” (1.3.12, 1.2.7)| |$proxy_protocol_addr|获取代理访问服务器的客户端地址,如果是直接访问,该值为空字符串。(1.5.12)| |$query_string|同 $args,然而 $query_string 是只读的不会改变| |$realpath_root|当前请求的文档根目录或别名的真实路径,会将所有符号连接转换为真实路径。| |$remote_addr|客户端地址| |$remote_port|客户端端口| |$remote_user|用于 HTTP 基础认证服务的用户名| |$request|代表客户端的请求地址| |$request_body|客户端的请求主体,此变量可在 location 中使用,将请求主体通过 proxy_pass, fastcgi_pass, uwsgi_pass, 和 scgi_pass 传递给下一级的代理服务器。| |$request_body_file|请求正文的临时文件名。处理完成时,临时文件将被删除。 如果希望总是将请求正文写入文件,需要开启 client_body_in_file_only。 如果在被代理的请求或 FastCGI 请求中传递临时文件名,就应该禁止传递请求正文本身。 使用 proxy_pass_request_body off 指令 和 fastcgi_pass_request_body off 指令 分别禁止在代理和 FastCGI 中传递请求正文。| |$request_completion|如果请求成功,值为”OK”,如果请求未完成或者请求不是一个范围请求的最后一部分,则为空。| |$request_filename|当前连接请求的文件路径,由 root 或 alias 指令与 URI 请求生成。| |$request_length|请求的长度 (包括请求的地址,http 请求头和请求主体)| |$request_method|HTTP 请求方法,通常为 “GET” 或 “POST”| |$request_time|处理客户端请求使用的时间;从读取客户端的第一个字节开始计时。| |$request_uri|这个变量等于包含一些客户端请求参数的原始 URI,它无法修改,请查看 $uri 更改或重写 URI,不包含主机名,例如:”/sai/test.php?arg=www”。| |$scheme|请求使用的 Web 协议,“http” 或 “https”| |$sent_http_name|可以设置任意 http 响应头字段; 变量名中的后半部分 “name” 可以替换成任意响应头字段,如需要设置响应头 Content-length,那么将 “-” 替换为下划线,大写字母替换为小写,形如:$sent_http_content_length 4096 即可。| |$server_addr|服务器端地址,需要注意的是:为了避免访问 linux 系统内核,应将 ip 地址提前设置在配置文件中。| |$server_name|服务器名| |$server_port|服务器端口| |$server_protocol|服务器的 HTTP 版本,通常为 “HTTP/1.0” 或 “HTTP/1.1”| |$status|HTTP 响应代码| |$time_iso8601|服务器时间的 ISO 8610 格式| |$time_local|服务器时间(LOG Format 格式) ,nginx 处理完成打印日志的时间,不是请求发出的时间| |$uri|请求中的当前 URI (不带请求参数,参数位于 $args),可以不同于浏览器传递的 $request_uri 的值,它可以通过内部重定向,或者使用 index 指令进行修改,$uri 不包含主机名,如”/foo/bar.html”。|
联系我们

邮箱 626512443@qq.com
电话 18611320371(微信)
QQ群 235681453

Copyright © 2015-2022

备案号:京ICP备15003423号-3