core module 支持一些内置的变量,与apache使用的变量相一致。
首先,一些变量代表了客户端请求头部的一些字段,如:$http_user_agent, $http_cookie等等。注意,由于这些变量会在请求中定义,所以可能无法保证他们是存在的或者说可以定义到一些别的地方

 

URI是统一资源;URL是资源的具体位置

URI解析:

https://localhost:80/test1/test2/test.php?k=v

$host='localhost';

$server_port=80;

$request_uri='/test1/test2/test.php?k=v';   ###变量等于包含一些客户端请求参数的原始URI,它无法修改

$document_uri | $uri ='/test1/test2/test.php';   ##请求中的当前URI(不带请求参数,参数位于$args),可以不同于浏览器传递的$request_uri的值,它可以通过内部重定向,或者使用index指令进行修改

$document_root='D:\nginx/html';   【此值是在当前请求root指令中指定的值】

$request_fileName='D:\nginx/html/test1/test2/test.php'; 【由root指令或者由alias指令指定的值与$uri的值拼接而成】

 

$scheme='http | https';

$server_protocol='请求协议版本:HTTP/1.0 | HTTP/1.1';

$server_addr='服务器地址,有一次调用后就可以确定此值;如果想要绕开系统调用,
则必须在listen中指定地址并且使用bind参数';

$server_.name='服务器名';

$server_port='请求协议';

$nginx_version=‘当前运行的nginx版本号‘;

 

$args | $query_string=‘请求中的参数’;

$is_args

如果$args设置,值为"?",否则为""

$content_length='请求头的content_length字段';

$content_type=‘请求头中的Content-Type字段‘;

$http_user_agent='浏览器信息';

$http_cookie='请求头中的cookie信息';

$cookie_COOKIE

cookie COOKIE的值。

$body_bytes_sent=‘传送页面的字节数‘;

$arg_PARAMETER=‘这个变量包含在查询字符串时GET请求PARAMETER的值‘;

 

$limit_rate='限制链接速率';

$request_body_file='客户端请求主体的临时文件名';

$request_method=‘请求的方式’;

$request_body=‘客户端请求的请求主体信息;在使用proxy_pass或fastcgi_pass指令的location中比较有意义‘;

$remote_addr='客户端ip值';

$http_x_forwarded_for='真实客户端ip值';

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

$remote_port='客户端端口值';

$remote_user='已认证的用户';

$invalid_referer=‘无效的引用页‘;【用指令valid_referers指定】

·$body_bytes_sent,减去应答头后传送给客户端的字节数,这个变量兼容apache模块mod_log_config的%B参数(在0.3.10前这个变量为$apache_bytes_sent)。
·$bytes_sent,传送给客户端的字节数。
·$connection,连接数。
·$msec,正在写入日志条目的当前时间(精确到百万分之一秒)
·$pipe,如果请求为管道的
·$request_length,请求主体的长度。
·$request_time,从一个请求发出到而使nginx工作的时间,单位为毫秒(0.5.19版本后可以使用秒为单位)。
·$status,应答的状态(代码)。
·$time_local,写入普通日志格式的当地时间(服务器时间)

HTTP_Proxy代理模块内置变量,可以用于proxy_set_header指令中以创建头部。

$proxy_add_x_forwarded_for

包含客户端请求头中的"X-Forwarded-For",与$remote_addr用逗号分开,如果没有"X-Forwarded-For"请求头,则_add_x_forwarded_for等于$remote_addr

 

$proxy_host

被代理服务器的主机名与端口号。

$proxy_port

被代理服务器的端口号

 

$upstream_addr

前端服务器处理请求的服务器地址

$upstream_cache_status

0.8.3版本中其值可能为:
·MISS
·EXPIRED - expired。请求被传送到后端。
·UPDATING - expired。由于proxy/fastcgi_cache_use_stale正在更新,将使用旧的应答。
·STALE - expired。由于proxy/fastcgi_cache_use_stale,后端将得到过期的应答。
·HIT

$upstream_status

前端服务器的响应状态。

$upstream_response_time

前端服务器的应答时间,精确到毫秒,不同的应答以逗号和冒号分开。

$upstream_http_$HEADER

随意的HTTP协议头中的字段,如:

$upstream_http_host | $upstream_http_content_type