分享最新版 nginx內(nè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)求來自管道通信,值為“p”,否則為“.” (1.3.12, 1.2.7)
$proxy_protocol_addr
獲取代理訪問服務(wù)器的客戶端地址,如果是直接訪問,該值為空字符串。(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)求主體通過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)求成功,值為”O(jiān)K”,如果請(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ù)器端地址,需要注意的是:為了避免訪問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的值,它可以通過內(nèi)部重定向,或者使用index指令進(jìn)行修改,$uri不包含主機(jī)名,如”/foo/bar.html”。
nginx內(nè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)求中沒有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ù)器的Ip地址。
$http_x_forwarded_for 1.0.8 相當(dāng)于網(wǎng)絡(luò)訪問路徑。
$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ù)器地址,如果沒有用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)過重定向之類的。
- nginx 多站點(diǎn)配置方法集合
- CentOS+Nginx+PHP+MySQL詳細(xì)配置(圖解)
- nginx提示:500 Internal Server Error錯(cuò)誤的解決方法
- Windows下Nginx+PHP5的安裝與配置方法
- Nginx 403 forbidden的解決辦法
- nginx FastCGI錯(cuò)誤Primary script unknown解決辦法
- 權(quán)限問題導(dǎo)致Nginx 403 Forbidden錯(cuò)誤的解決方法
- CentOS 6.4安裝配置LNMP服務(wù)器(Nginx+PHP+MySQL)
- nginx 作為反向代理實(shí)現(xiàn)負(fù)載均衡的例子
- 一句簡(jiǎn)單命令重啟nginx
- Nginx下301重定向域名的方法小結(jié)
- Nginx偽靜態(tài)配置和常用Rewrite偽靜態(tài)規(guī)則集錦
- nginx 內(nèi)置變量詳解及隔離進(jìn)行簡(jiǎn)單的攔截
相關(guān)文章
基于Nginx禁止指定IP、國(guó)外IP訪問我的網(wǎng)站
這篇文章主要介紹了用Nginx禁止指定IP、國(guó)外IP訪問我的網(wǎng)站,想要實(shí)現(xiàn)這個(gè)功能方法有很多種,這里基于 Nginx 的 ngx_http_geoip2 模塊來禁止國(guó)外 IP 訪問網(wǎng)站,需要的朋友可以參考下2022-05-05全面了解Nginx中的HTTP協(xié)議相關(guān)模塊配置
HTTP的處理是Nginx服務(wù)器的最重要功能,這里我們就帶大家來全面了解Nginx中的HTTP協(xié)議相關(guān)模塊配置,需要的朋友可以參考下2016-07-07nginx配置location?root簡(jiǎn)單方法記錄
Location是Nginx中一個(gè)非常核心的配置,下面這篇文章主要給大家介紹了關(guān)于nginx配置location?root的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12Windows下Nginx的啟動(dòng)停止等基本操作命令詳解
在Windows下使用Nginx,我們需要掌握一些基本的操作命令,今天為大家分享幾個(gè)Windows下操作Nginx的基本命令2018-10-10