NGINX內建變數

2022-07-27 14:27:33 字數 3146 閱讀 3914

$bytes_sent             傳送給客戶端的位元組數

$connection 連線序列號

$connection_requests 當前通過連線發出的請求數量

$content_length 「content-length」 請求頭欄位

$content_type 「content-type」 請求頭欄位

$cookie_name cookie名稱

$document_root 當前請求的文件根目錄或別名

$uri 請求中的當前uri(不帶請求引數,引數位於$args),可以不同於瀏覽器傳遞的$request_uri的值,它可以通過內部重定向,或者使用index指令進行修改,$uri不包含主機名,如」/foo/bar.html」。

$document_uri 同 $uri

$host 優先順序如下:http請求行的主機名》」host」請求頭欄位》符合請求的伺服器名

$hostname 主機名

$http_name 匹配任意請求頭欄位; 變數名中的後半部分「name」可以替換成任意請求頭欄位,如在配置檔案中需要獲取http請求頭:「accept-language」,那麼將「-」替換為下劃線,大寫字母替換為小寫,形如:$http_accept_language即可。

$https 如果開啟了ssl安全模式,值為「on」,否則為空字串。

$is_args 如果請求中有引數,值為「?」,否則為空字串。

$limit_rate 用於設定響應的速度限制

$nginx_version nginx版本

$pid 工作程序的pid

$pipe 如果請求來自管道通訊,值為「p」,否則為「.」 (1.3.12, 1.2.7)

$proxy_protocol_addr 獲取**訪問伺服器的客戶端位址,如果是直接訪問,該值為空字串。

$realpath_root 當前請求的文件根目錄或別名的真實路徑,會將所有符號連線轉換為真實路徑。

$msec 以秒為單位的時間,日誌寫入時的毫秒解析度

$request_length 請求長度(包括請求行,標題和請求主體)

$request_method http請求方法,通常為「get」或「post」

$request_time 處理客戶端請求使用的時間;從讀取客戶端的第乙個位元組開始計時。

$request_uri 這個變數等於包含一些客戶端請求引數的原始uri,它無法修改,請檢視$uri更改或重寫uri,不包含主機名,例如:」/cnphp/test.php?arg=freemouse」。

$request_time 以毫秒解析度請求處理時間,以秒為單位; 從客戶端讀取第乙個位元組之間的時間並在最後乙個位元組傳送到客戶端後進行日誌寫入

$status 響應狀態碼

$time_local 本地時間採用通用日誌格式

$arg_name 請求中的的引數名,即「?」後面的arg_name=arg_value形式的arg_name

$args 請求中的引數值

$binary_remote_addr 客戶端位址的二進位制形式, 固定長度為4個位元組

$body_bytes_sent 傳輸給客戶端的位元組數,響應頭不計算在內;這個變數和apache的mod_log_config模組中的「%b」引數保持相容

$remote_addr 客戶端位址

$remote_port 客戶端埠

$remote_user 用於http基礎認證服務的使用者名稱

$request 客戶端請求位址

$request_body 客戶端的請求主體,此變數可在location中使用,將請求主體通過proxy_pass, fastcgi_pass, uwsgi_pass, 和 scgi_pass傳遞給下一級的**伺服器。

$request_body_file 將客戶端請求主體儲存在臨時檔案中。檔案處理結束後,此檔案需刪除。如果需要之一開啟此功能,需要設定client_body_in_file_only。如果將次檔案傳遞給後端的**伺服器,需要禁用request body,即設定proxy_pass_request_body off,fastcgi_pass_request_body off, uwsgi_pass_request_body off, or scgi_pass_request_body off 。

$request_completion 如果請求成功,值為」ok」,如果請求未完成或者請求不是乙個範圍請求的最後一部分,則為空。

$request_filename 當前連線請求的檔案路徑,由root或alias指令與uri請求生成。

$scheme 請求使用的web協議, 「http」 或 「https」

$sent_http_name 可以設定任意http響應頭欄位; 變數名中的後半部分「name」可以替換成任意響應頭欄位,如需要設定響應頭content-length,那麼將「-」替換為下劃線,大寫字母替換為小寫,形如:$sent_http_content_length 4096即可。

$server_name 伺服器名,網域名稱

$server_port 伺服器端口

$server_protocol 伺服器的http版本, 通常為 「http/1.0」 或 「http/1.1」

$tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd, $tcpinfo_rcv_space 客戶端tcp連線的具體資訊

nginx內建變數

nginx作為乙個成熟 久經考驗的負載均衡軟體,與其提供豐富 完整的內建變數是分不開的,它極大增加了對nginx網路行為的控制細度。這些變數大部分都是在請求進入時解析的,並把他們快取到請求cycle中,方便下一次獲取使用。首先來看看nginx對都開放了那些api。參看下表 名稱說明 arg name...

nginx 內建變數

在配置基於nginx伺服器的 時,必然會用到 nginx內建變數 下面筆者將它整理成列表,把最新版本的變數列出來,以方便做配置時查詢 nginx內建變數 內建變數存放在 ngx http core module 模組中,變數的命名方式和apache 伺服器變數是一致的。總而言之,這些變數代表著客戶端...

nginx內建變數

變數名 定義 arg parameter get請求中變數名parameter引數的值。args 這個變數等於get請求中的引數。例如,foo 123 bar blahblah 這個變數只可以被修改 binary remote addr 二進位製碼形式的客戶端位址。body bytes sent 傳...