反向代理模块常用的几种变量如下表所示:
(1)HTTP请求相关的变量
变量名称 |
描述 |
$host |
HTTP请求中的Host字段,不包含端口号。 |
$http_host |
HTTP请求中的Host字段的原始值。主机和端口。 |
$args |
HTTP请求中的参数,即问号后的部分:XXX=1&YYY=2 |
$args_XXX |
HTTP请求中的XXX参数的值。 |
$query_string |
HTTP请求中的参数。只读。 |
$uri |
HTTP请求中的URI,不带参数。 |
$document_uri |
同$uri。 |
$request_uri |
HTTP请求中的URI的原始值。包含参数。 |
$http_XXX |
HTTP请求中的XXX头部的值:$http_host。 |
$content_type |
HTTP请求中的Content-Type的值。 |
$content_length |
HTTP请求中的Content-Length的值。 |
$cookie_XXX |
HTTP请求中的XXX Cookie的值。 |
$request_body |
HTTP请求的包体。 |
$scheme |
HTTP请求的模式。http或https等。 |
$request_method |
HTTP请求的方法。GET或POST等。 |
(2)HTTP应答相关的变量
变量名称 |
描述 |
$sent_http_XXX |
HTTP应答中的HTTP头部XXX的值。$sent_http_content_type。 |
$body_bytes_sent |
HTTP应答中的包体的字节数。 |
(3)客户端相关的变量
变量名称 |
描述 |
$remote_addr |
客户端IP |
$remote_port |
客户端端口 |
$remote_user |
客户端用户名。Auth Basic Module。 |
$proxy_add_x_forwarded_for |
HTTP请求中X-Forwarded-For的值。备注(a) |
$http_x_forwarded_for |
HTTP请求中X-Forwarded-For的值。 |
备注:
(a)X-Forwarded-For。
X-Forwarded-For是一个HTTP头部信息,是一个包含客户端真实IP地址和所经过的代理地址的列表,用逗号分隔各个地址。这个信息可以用于获取真实客户端IP地址。
在客户端请求不包含X-Forwarded-For头信息时,$proxy_add_x_forwaded_for相当于$remote_addr。
NGINX支持修改X-Forwarded-For的值:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
上述配置将会使得X-Forwarded-For的值后面增加一项内容,即NGINX所在主机的地址。
(4)NGINX相关的变量
变量名称 |
描述 |
$is_args |
请求是否带参数。是:值为问号(?),否则为空字符串。 |
$limit_rate |
限速。0:无限速。 |
$nginx_version |
NGINX版本号。 |
$hostname |
NGINX所在主机名称 |
$request_filename |
HTTP请求经过root或alias转换后的路径。 |
$request_body_file |
HTTP请求的包体的临时存储文件。 |
$request_completion |
HTTP请求是否全部完成。是:值为ok,否则为空字符串。 |
(5)后端主机相关的变量
变量名称 |
描述 |
$server_addr |
主机地址 |
$server_name |
主机名称。 |
$server_port |
主机端口。 |
$server_protocol |
主机向响应的HTTP协议。HTTP/1.0或HTTP/1.1。 |
$proxy_host |
被代理的主机的名称和端口。 |
$proxy_port |
被代理的主机的端口。 |
时间: 2024-10-08 10:40:21