溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

nginx的內(nèi)置變量有哪些

發(fā)布時(shí)間:2022-04-25 15:17:18 來(lái)源:億速云 閱讀:147 作者:iii 欄目:大數(shù)據(jù)

今天小編給大家分享一下nginx的內(nèi)置變量有哪些的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

nginx內(nèi)置變量

內(nèi)置變量存放在  ngx_http_core_module 模塊中,變量的命名方式和apache 服務(wù)器變量是一致的。總而言之,這些變量代表著客戶端請(qǐng)求頭的內(nèi)容,例如$http_user_agent, $http_cookie, 等等。下面是nginx支持的所有內(nèi)置變量:

$arg_name
請(qǐng)求中的的參數(shù)名,即“?”后面的arg_name=arg_value形式的arg_name

$args
請(qǐng)求中的參數(shù)值

$binary_remote_addr
客戶端地址的二進(jìn)制形式, 固定長(zhǎng)度為4個(gè)字節(jié)

$body_bytes_sent
傳輸給客戶端的字節(jié)數(shù),響應(yīng)頭不計(jì)算在內(nèi);這個(gè)變量和apache的mod_log_config模塊中的“%b”參數(shù)保持兼容

$bytes_sent
傳輸給客戶端的字節(jié)數(shù) (1.3.8, 1.2.5)

$connection
tcp連接的序列號(hào) (1.3.8, 1.2.5)

$connection_requests
tcp連接當(dāng)前的請(qǐng)求數(shù)量 (1.3.8, 1.2.5)

$content_length
“content-length” 請(qǐng)求頭字段

$content_type
“content-type” 請(qǐng)求頭字段

$cookie_name
cookie名稱

$document_root
當(dāng)前請(qǐng)求的文檔根目錄或別名

$document_uri
同 $uri

$host
優(yōu)先級(jí)如下:http請(qǐng)求行的主機(jī)名>”host”請(qǐng)求頭字段>符合請(qǐng)求的服務(wù)器名

$hostname
主機(jī)名

$http_name
匹配任意請(qǐng)求頭字段; 變量名中的后半部分“name”可以替換成任意請(qǐng)求頭字段,如在配置文件中需要獲取http請(qǐng)求頭:“accept-language”,那么將“-”替換為下劃線,大寫字母替換為小寫,形如:$http_accept_language即可。

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

$is_args
如果請(qǐng)求中有參數(shù),值為“?”,否則為空字符串。

$limit_rate
用于設(shè)置響應(yīng)的速度限制,詳見 limit_rate。

$msec
當(dāng)前的unix時(shí)間戳 (1.3.9, 1.2.6)

$nginx_version
nginx版本

$pid
工作進(jìn)程的pid

$pipe
如果請(qǐng)求來(lái)自管道通信,值為“p”,否則為“.” (1.3.12, 1.2.7)

$proxy_protocol_addr
獲取代理訪問(wèn)服務(wù)器的客戶端地址,如果是直接訪問(wèn),該值為空字符串。(1.5.12)

$query_string
同 $args

$realpath_root
當(dāng)前請(qǐng)求的文檔根目錄或別名的真實(shí)路徑,會(huì)將所有符號(hào)連接轉(zhuǎn)換為真實(shí)路徑。

$remote_addr
客戶端地址

$remote_port
客戶端端口

$remote_user
用于http基礎(chǔ)認(rèn)證服務(wù)的用戶名

$request
代表客戶端的請(qǐng)求地址

$request_body
客戶端的請(qǐng)求主體
此變量可在location中使用,將請(qǐng)求主體通過(guò)proxy_pass, fastcgi_pass, uwsgi_pass, 和 scgi_pass傳遞給下一級(jí)的代理服務(wù)器。

$request_body_file
將客戶端請(qǐng)求主體保存在臨時(shí)文件中。文件處理結(jié)束后,此文件需刪除。如果需要之一開啟此功能,需要設(shè)置client_body_in_file_only。如果將次文件傳遞給后端的代理服務(wù)器,需要禁用request body,即設(shè)置proxy_pass_request_body off,fastcgi_pass_request_body off, uwsgi_pass_request_body off, or scgi_pass_request_body off 。

$request_completion
如果請(qǐng)求成功,值為”ok”,如果請(qǐng)求未完成或者請(qǐng)求不是一個(gè)范圍請(qǐng)求的最后一部分,則為空。

$request_filename
當(dāng)前連接請(qǐng)求的文件路徑,由root或alias指令與uri請(qǐng)求生成。

$request_length
請(qǐng)求的長(zhǎng)度 (包括請(qǐng)求的地址, http請(qǐng)求頭和請(qǐng)求主體) (1.3.12, 1.2.7)

$request_method
http請(qǐng)求方法,通常為“get”或“post”

$request_time
處理客戶端請(qǐng)求使用的時(shí)間 (1.3.9, 1.2.6); 從讀取客戶端的第一個(gè)字節(jié)開始計(jì)時(shí)。

$request_uri
這個(gè)變量等于包含一些客戶端請(qǐng)求參數(shù)的原始uri,它無(wú)法修改,請(qǐng)查看$uri更改或重寫uri,不包含主機(jī)名,例如:”/cnphp/test.php?arg=freemouse”。

$scheme
請(qǐng)求使用的web協(xié)議, “http” 或 “https”

$sent_http_name
可以設(shè)置任意http響應(yīng)頭字段; 變量名中的后半部分“name”可以替換成任意響應(yīng)頭字段,如需要設(shè)置響應(yīng)頭content-length,那么將“-”替換為下劃線,大寫字母替換為小寫,形如:$sent_http_content_length 4096即可。

$server_addr
服務(wù)器端地址,需要注意的是:為了避免訪問(wèn)linux系統(tǒng)內(nèi)核,應(yīng)將ip地址提前設(shè)置在配置文件中。

$server_name
服務(wù)器名,www.cnphp.info

$server_port
服務(wù)器端口

$server_protocol
服務(wù)器的http版本, 通常為 “http/1.0” 或 “http/1.1”

$status
http響應(yīng)代碼 (1.3.2, 1.2.2)

$tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd, $tcpinfo_rcv_space
客戶端tcp連接的具體信息

$time_iso8601
服務(wù)器時(shí)間的iso 8610格式 (1.3.12, 1.2.7)

$time_local
服務(wù)器時(shí)間(log format 格式) (1.3.12, 1.2.7)

$uri
請(qǐng)求中的當(dāng)前uri(不帶請(qǐng)求參數(shù),參數(shù)位于$args),可以不同于瀏覽器傳遞的$request_uri的值,它可以通過(guò)內(nèi)部重定向,或者使用index指令進(jìn)行修改,$uri不包含主機(jī)名,如”/foo/bar.html”。

nginx內(nèi)置全局變量及含義

名稱        版本        說(shuō)明(變量列表來(lái)源于文件 ngx_http_variables )
$args        1.0.8        請(qǐng)求中的參數(shù);
$binary_remote_addr        1.0.8        遠(yuǎn)程地址的二進(jìn)制表示
$body_bytes_sent        1.0.8        已發(fā)送的消息體字節(jié)數(shù)
$content_length        1.0.8        http請(qǐng)求信息里的"content-length";
$content_type        1.0.8        請(qǐng)求信息里的"content-type";
$document_root        1.0.8        針對(duì)當(dāng)前請(qǐng)求的根路徑設(shè)置值;
$document_uri        1.0.8        與$uri相同; 比如 /test1/test2/test.php
$host        1.0.8        請(qǐng)求信息中的"host",如果請(qǐng)求中沒(méi)有host行,則等于設(shè)置的服務(wù)器名;
$hostname        1.0.8      
$http_cookie        1.0.8        cookie 信息
$http_post        1.0.8      
$http_referer        1.0.8        引用地址
$http_user_agent        1.0.8        客戶端代理信息
$http_via        1.0.8        最后一個(gè)訪問(wèn)服務(wù)器的ip地址。
$http_x_forwarded_for        1.0.8        相當(dāng)于網(wǎng)絡(luò)訪問(wèn)路徑。
$is_args        1.0.8      
$limit_rate        1.0.8        對(duì)連接速率的限制;
$nginx_version        1.0.8      
$pid        1.0.8      
$query_string        1.0.8        與$args相同;
$realpath_root        1.0.8      
$remote_addr        1.0.8        客戶端地址;
$remote_port        1.0.8        客戶端端口號(hào);
$remote_user        1.0.8        客戶端用戶名,認(rèn)證用;
$request        1.0.8        用戶請(qǐng)求
$request_body        1.0.8      
$request_body_file        1.0.8        發(fā)往后端的本地文件名稱
$request_completion        1.0.8      
$request_filename        1.0.8        當(dāng)前請(qǐng)求的文件路徑名,比如$request_filename:d:\nginx/html/test1/test2/test.php
$request_method        1.0.8        請(qǐng)求的方法,比如"get"、"post"等;
$request_uri        1.0.8        請(qǐng)求的uri,帶參數(shù); 比如http://localhost:88/test1/test2/test.php
$scheme        1.0.8        所用的協(xié)議,比如http或者是https,比如rewrite^(.+)$$scheme://example.com$1redirect;
$sent_http_cache_control        1.0.8      
$sent_http_connection        1.0.8      
$sent_http_content_length        1.0.8      
$sent_http_content_type        1.0.8      
$sent_http_keep_alive        1.0.8       
$sent_http_last_modified        1.0.8      
$sent_http_location        1.0.8      
$sent_http_transfer_encoding        1.0.8      
$server_addr        1.0.8        服務(wù)器地址,如果沒(méi)有用listen指明服務(wù)器地址,使用這個(gè)變量將發(fā)起一次系統(tǒng)調(diào)用以取得地址(造成資源浪費(fèi));
$server_name        1.0.8        請(qǐng)求到達(dá)的服務(wù)器名;
$server_port        1.0.8        請(qǐng)求到達(dá)的服務(wù)器端口號(hào);
$server_protocol        1.0.8        請(qǐng)求的協(xié)議版本,"http/1.0"或"http/1.1";
$uri        1.0.8        請(qǐng)求的uri,可能和最初的值有不同,比如經(jīng)過(guò)重定向之類的。

以上就是“nginx的內(nèi)置變量有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI