Nginx學習筆記08使用變量
反向代理模塊常用的幾種變量如下表所示:
(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 |
被代理的主機的端口。 |
Nginx學習筆記08使用變量