Nginx 服务器内置变量

Dec 12, 2017 阅读(38)

标签: Nginx

Nginx 服务器的配置文件中可以包含一些预设的变量,以帮助大家获取Nginx 自身和网络等方面的信息供配置使用。本附录为大家整理和收集Nginx服务器中常用的内置变量,并对变量的含义做了相应的解释,供大家在使用中查询。如果在对Nginx服务器配置的过程中出现此附录未收录的内置变量,请大家到Nginx官方网站查询。

以下是常用的Nginx 服务器内置变量:

$arg_PARAMETER 客户端GET请求中变量名PARAMETER参数的值


$args 客户端GET请求中的参数


$binary_remote_addr 二进制码形式的客户端地址


$body_bytes_sent 已发送的消息体字节数


$content_length 请求头中的Content-Length字段


$content_type 请求头中的Content-Type字段。


$cookie_COOKIE 客户端请求中cookie COOKIE的值


$document_root 当前请求在root指令中指定的值


$document_uri 与$uri相同。


$host 请求中的主机头(Host)字段,如果请求中的主机头不可用或者空,则为处理请求的server名称(处理请求的server的server_name指令的值)。值为小写,不包含端口。


$hostname  机器名使用 gethostname系统调用的值


$http_cookie 客户端的cookie信息


$http_host 与$host相同,但如果请求信息中没有Host行,则可能不同


$http_referer 引用地址


$http_user_agent 客户端代理信息


$http_via 最后一个访问服务器的IP地址


$http_x_forwarded_for相当于网络访问路径


$http_HEADER   HTTP请求头中的内容,HEADER为HTTP请求中的内容转为小写,-变为_(破折号变为下划线),例如:$http_user_agent(Uaer-Agent的值), $http_referer...;


$sent_http_HEADER  HTTP响应头中的内容,HEADER为HTTP响应中的内容转为小写,-变为_(破折号变为下划线),例如: $sent_http_cache_control, $sent_http_content_type...;


$is_args 如果$args有值,则等于"?",否则为""。


$limit_rate 这个变量可以限制连接速率。


$nginx_version 当前运行的nginx版本号。


$query_string 与$args相同。


$pid 当前Nginx 服务器主进程的进程ID


$remote_addr 客户端的IP地址。


$remote_port 客户端的端口。


$remote_user 已经经过Auth Basic Module验证的用户名。


$request 客户端请求


$request_filename 当前连接请求的文件路径名,由root或alias指令与URI请求生成。


$request_body 客户端请求报文体。在使用proxy_pass或fastcgi_pass指令的location中比较有意义。


$request_body_file 客户端请求主体信息的临时文件名。


$request_method请求方法,比如GET、POST等


$request_completion 如果请求成功,设为"OK";如果请求未完成或者不是一系列请求中最后一部分则设为空。


$request_uri 请求的URI,带参数,不包含主机名


$scheme 所用的协议,比如http或者是https,比如rewrite ^(.+)$ $scheme://example.com$1 redirect;


$server_addr 服务器地址,如果没有用listen 指明服务器地址,使用这个变量将发起一次系统调用以取得地址(这样会造成服务器浪费)


$server_name 服务器名称。


$server_port 请求到达服务器的端口号。


$server_protocol 请求使用的协议,通常是HTTP/1.0或HTTP/1.1。


$uri 请求中的当前URI(不带请求参数,参数位于$args),不同于浏览器传递的$request_uri的值,它可以通过内部重定向,或者使用index指令进行修改。不包括协议和主机名,例如/foo/bar.html