Gojira 哥斯拉Gojira 哥斯拉

哥斯拉爱好者的日常
生活相当无趣 我得找点乐子

Nginx所有内置全局变量大全及含义

gojira.net

经常需要配置并优化Nginx ,Nginx 的配置文件使用的就是一门微型的编程语言,或者说很多Nginx配置文件其实就是一个一个的小程序,而程序自然就要用到变量了。

“小程序”中会有许多以 $ 开头的变量,经常需要查阅nginx 所支持的变量,可是对 Ngixn资源不熟悉,干脆就直接读源码,分析出支持的变量。Nginx支持的http变量实现在 ngx_http_variables.c 的 ngx_http_core_variables存储实现。

Nginx所有内置全局变量大全及含义如下:

名称 说明(变量列表来源于文件 ngx_http_variables )
$args 请求中的参数;
$binary_remote_addr 远程地址的二进制表示
$body_bytes_sent 已发送的消息体字节数
$content_length HTTP请求信息里的"Content-Length";
$content_type 请求信息里的"Content-Type";
$document_root 针对当前请求的根路径设置值;
$document_uri 与$uri相同;
$host 请求信息中的"Host",如果请求中没有Host行,则等于设置的服务器名;
$hostname
$http_cookie cookie 信息
$http_post
$http_referer 引用地址
$http_user_agent 客户端代理信息
$http_via 最后一个访问服务器的Ip地址。
$http_x_forwarded_for 相当于网络访问路径。
$is_args
$limit_rate 对连接速率的限制;
$nginx_version
$pid
$query_string 与$args相同;
$realpath_root
$remote_addr 客户端地址;
$remote_port 客户端端口号;
$remote_user 客户端用户名,认证用;
$request 用户请求
$request_body
$request_body_file 发往后端的本地文件名称
$request_completion
$request_filename 当前请求的文件路径名
$request_method 请求的方法,比如"GET"、"POST"等;
$request_uri 请求的URI,带参数;
$scheme 所用的协议,比如http或者是https,比如rewrite^(.+)$$scheme://www.gojira.net$1redirect;
$sent_http_cache_control
$sent_http_connection
$sent_http_content_length
$sent_http_content_type
$sent_http_keep_alive
$sent_http_last_modified
$sent_http_location
$sent_http_transfer_encoding
$server_addr 服务器地址,如果没有用listen指明服务器地址,使用这个变量将发起一次系统调用以取得地址(造成资源浪费);
$server_name 请求到达的服务器名;
$server_port 请求到达的服务器端口号;
$server_protocol 请求的协议版本,"HTTP/1.0"或"HTTP/1.1";
$uri 请求的URI,可能和最初的值有不同,比如经过重定向之类的。
GOJIRA.NET原创文章未经允许不得转载! 当前页面:Gojira 哥斯拉 » Nginx所有内置全局变量大全及含义

评论 1

  1. 我也想了解,请大家都说说

    漫妮 博 主 2015.12.06 00:27:08 回复