nginx內建變數

2022-07-16 20:30:14 字數 3915 閱讀 5935

(**內容)

內建變數存放在  ngx_http_core_module 模組中,變數的命名方式和apache 伺服器變數是一致的。總而言之,這些變數代表著客戶端請求頭的內容,例如$http_user_agent, $http_cookie, 等等。下面是nginx支援的所有內建變數:

$arg_name

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

$args

請求中的引數值

$binary_remote_addr

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

$body_bytes_sent

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

$bytes_sent

傳輸給客戶端的位元組數 (1.3.8, 1.2.5)

$connection

tcp連線的序列號 (1.3.8, 1.2.5)

$connection_requests

tcp連線當前的請求數量 (1.3.8, 1.2.5)

$content_length

「content-length」 請求頭欄位

$content_type

「content-type」 請求頭欄位

$cookie_name

cookie名稱

$document_root

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

$document_uri

同 $uri

$host

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

$hostname

主機名$http_name

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

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

$is_args

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

$limit_rate

用於設定響應的速度限制,詳見 limit_rate。

$msec

當前的unix時間戳 (1.3.9, 1.2.6)

$nginx_version

nginx版本

$pid

工作程序的pid

$pipe

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

$proxy_protocol_addr

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

$query_string

同 $args

$realpath_root

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

$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請求生成。

$request_length

請求的長度 (包括請求的位址, http請求頭和請求主體) (1.3.12, 1.2.7)

$request_method

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

$request_time

處理客戶端請求使用的時間 (1.3.9, 1.2.6); 從讀取客戶端的第乙個位元組開始計時。

$request_uri

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

$scheme

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

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

$server_addr$server_name

伺服器名,www.cnphp.info

$server_port

伺服器端口

$server_protocol

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

$status

http響應** (1.3.2, 1.2.2)

$tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd, $tcpinfo_rcv_space

客戶端tcp連線的具體資訊

$time_iso8601

伺服器時間的iso 8610格式 (1.3.12, 1.2.7)

$time_local

伺服器時間(log format 格式) (1.3.12, 1.2.7)

$uri

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

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 傳...