導讀 | ngx_http_core_module模塊在處理請求時,會有大量的變量,這些變量能夠經過訪問日誌來記錄下來,也能夠用於其它nginx模塊。 |
在咱們對請求作策略如改寫等等都會使用到一些變量,順便對ngx_http_core_module模塊提供的變量總結了下,以下所示:php
$arg_PARAMETER HTTP 請求中某個參數的值,如/index.php?site=www.ttlsa.com,能夠用$arg_site 取得www.ttlsa.com這個值. $args HTTP 請求中的完整參數。例如,在請求/index.php?width=400&height=200 中,$args表示字符串width=400&height=200. $binary_remote_addr 二進制格式的客戶端地址。例如:\x0A\xE0B\x0E $body_bytes_sent 表示在向客戶端發送的http響應中,包體部分的字節數 $content_length 表示客戶端請求頭部中的Content-Length 字段 $content_type 表示客戶端請求頭部中的Content-Type 字段 $cookie_COOKIE 表示在客戶端請求頭部中的cookie 字段 $document_root 表示當前請求所使用的root 配置項的值 $uri 表示當前請求的URI,不帶任何參數 $document_uri 與$uri 含義相同 $request_uri 表示客戶端發來的原始請求URI,帶完整的參數。 $uri和$document_uri未必是用戶的原始請求,在內部重定向後多是重定向後的URI,而$request_uri 永遠不會改變,始終是客戶端的原始URI. $host 表示客戶端請求頭部中的Host字段。若是Host字段不存在,則以實際處理的server(虛擬主機)名稱代替。若是Host字段中帶有端口,如IP:PORT,那麼$host是去掉端口的,它的值爲IP。 $host 是全小寫的。這些特性與http_HEADER中的http_host不一樣,http_host只取出Host頭部對應的值。 $hostname 表示 Nginx所在機器的名稱,與 gethostbyname調用返回的值相同 $http_HEADER 表示當前 HTTP請求中相應頭部的值。HEADER名稱全小寫。例如,示請求中 Host頭部對應的值 用 $http_host表 $sent_http_HEADER 表示返回客戶端的 HTTP響應中相應頭部的值。HEADER名稱全小寫。例如,用 $sent_ http_content_type表示響應中 Content-Type頭部對應的值 $is_args 表示請求中的 URI是否帶參數,若是帶參數,$is_args值爲 ?,若是不帶參數,則是空字符串 $limit_rate 表示當前鏈接的限速是多少,0表示無限速 $nginx_version 表示當前 Nginx的版本號 $query_string 請求 URI中的參數,與 $args相同,然而 $query_string是隻讀的不會改變 $remote_addr 表示客戶端的地址 $remote_port 表示客戶端鏈接使用的端口 $remote_user 表示使用 Auth Basic Module時定義的用戶名 $request_filename 表示用戶請求中的 URI通過 root或 alias轉換後的文件路徑 $request_body 表示 HTTP請求中的包體,該參數只在 proxy_pass或 fastcgi_pass中有意義 $request_body_file 表示 HTTP請求中的包體存儲的臨時文件名 $request_completion 當請求已經所有完成時,其值爲 「ok」。若沒有完成,就要返回客戶端,則其值爲空字符串;或者在斷點續傳等狀況下使用 HTTP range訪問的並非文件的最後一塊,那麼其值也是空字符串。 $request_method 表示 HTTP請求的方法名,如 GET、PUT、POST等 $scheme 表示 HTTP scheme,如在請求 https://nginx.com/中表示 https $server_addr 表示服務器地址 $server_name 表示服務器名稱 $server_port 表示服務器端口 $server_protocol 表示服務器向客戶端發送響應的協議,如 HTTP/1.1或 HTTP/1.0