首頁 運維 Nginx nginx的內建變數有哪些

nginx的內建變數有哪些

May 26, 2023 pm 04:16 PM
nginx

nginx內建變數

內建變數存放在  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即可。


$https

如果開啟了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”


$sent_http_name

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


$server_addr

伺服器端位址,需要注意的是:為了避免存取linux系統內核,應將ip位址提前設定在設定檔中。


$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內建全域變數及意義

#

姓名        版本       說明(變數清單來自檔案 ngx_http_variables)
$args          1.0.8        遠端位址的二進位表示法
$body_bytes_sent        1.0.8        寄送的訊息體位元組數
$content_length        1.0.8        http要求訊息中的"content-length";
         1.0. 8        針對目前請求的根路徑設定值;
$document_uri        1.0.8       與$uri 請求訊息中的"host",如果請求中沒有host行,則等於設定的伺服器名稱;
$hostname        1.0.8      
$http_cookie              
$http_referer        1.0.8        引用網址
$http_user_agent        1.0.8        客戶代理資訊
$http_via        1.0.8           1.0.8          
$http_x_forwarded_for        1.0.8        相當於網路存取路徑。
$is_args        1.0.8      
$limit_rate        1.0.8        
$pid        1.0.8      
$query_string        1.0.8        ;
$realpath_root        1.0.8      
$remote_addr        1.0.8   1      用戶端連接埠號碼;
$remote_user        1.0.8        使用者使用者名稱,以認證使用;
$request        1.0.8        使用者請求
$request_body        1.0.8      寄往後端的本機檔案名稱
$request_completion        1.0.8      
$request_filename        1.
$request_filename      請求的檔案路徑名,如$request_filename:d:\nginx/html/test1/test2/test.php
$request_method        1.0.8        請求的方法,例如"get"、"#」等; request_uri        1.0.8          1.0.8       )$$scheme://example.com$1redirect;
$sent_http_cache_control        1.0.8      
$sent_http_connection .       1.0.8      
$sent_http_content_type        1.0.8      
##$sent_http_keep_alive        1.0.8       
$sent_http_last_modified              
$sent_http_transfer_encoding        1.0.8      
$server_addr        1.變數會啟動一次系統呼叫以獲得位址(造成資源浪費);
$server_name        1.0.8        請求到達的伺服器名稱;
$server_port   _$1       1.0 .8        請求的協議版本,"http/1.0"或"http/1.1";
$uri        1.0.8       請求的uri,可能與最初重定向的值有不同的,例如經過重新設計的

以上是nginx的內建變數有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

docker容器名稱怎麼查 docker容器名稱怎麼查 Apr 15, 2025 pm 12:21 PM

可以通過以下步驟查詢 Docker 容器名稱:列出所有容器(docker ps)。篩選容器列表(使用 grep 命令)。獲取容器名稱(位於 "NAMES" 列中)。

nginx在windows中怎麼配置 nginx在windows中怎麼配置 Apr 14, 2025 pm 12:57 PM

如何在 Windows 中配置 Nginx?安裝 Nginx 並創建虛擬主機配置。修改主配置文件並包含虛擬主機配置。啟動或重新加載 Nginx。測試配置並查看網站。選擇性啟用 SSL 並配置 SSL 證書。選擇性設置防火牆允許 80 和 443 端口流量。

怎麼查看nginx是否啟動 怎麼查看nginx是否啟動 Apr 14, 2025 pm 01:03 PM

確認 Nginx 是否啟動的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 檢查端口 80 是否開放;3. 查看系統日誌中 Nginx 啟動消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

docker怎麼啟動容器 docker怎麼啟動容器 Apr 15, 2025 pm 12:27 PM

Docker 容器啟動步驟:拉取容器鏡像:運行 "docker pull [鏡像名稱]"。創建容器:使用 "docker create [選項] [鏡像名稱] [命令和參數]"。啟動容器:執行 "docker start [容器名稱或 ID]"。檢查容器狀態:通過 "docker ps" 驗證容器是否正在運行。

nginx怎麼配置雲服務器域名 nginx怎麼配置雲服務器域名 Apr 14, 2025 pm 12:18 PM

在雲服務器上配置 Nginx 域名的方法:創建 A 記錄,指向雲服務器的公共 IP 地址。在 Nginx 配置文件中添加虛擬主機塊,指定偵聽端口、域名和網站根目錄。重啟 Nginx 以應用更改。訪問域名測試配置。其他注意事項:安裝 SSL 證書啟用 HTTPS、確保防火牆允許 80 端口流量、等待 DNS 解析生效。

nginx怎麼查版本 nginx怎麼查版本 Apr 14, 2025 am 11:57 AM

可以查詢 Nginx 版本的方法有:使用 nginx -v 命令;查看 nginx.conf 文件中的 version 指令;打開 Nginx 錯誤頁,查看頁面的標題。

docker怎麼創建容器 docker怎麼創建容器 Apr 15, 2025 pm 12:18 PM

在 Docker 中創建容器: 1. 拉取鏡像: docker pull [鏡像名] 2. 創建容器: docker run [選項] [鏡像名] [命令] 3. 啟動容器: docker start [容器名]

怎麼啟動nginx服務器 怎麼啟動nginx服務器 Apr 14, 2025 pm 12:27 PM

啟動 Nginx 服務器需要按照不同操作系統採取不同的步驟:Linux/Unix 系統:安裝 Nginx 軟件包(例如使用 apt-get 或 yum)。使用 systemctl 啟動 Nginx 服務(例如 sudo systemctl start nginx)。 Windows 系統:下載並安裝 Windows 二進製文件。使用 nginx.exe 可執行文件啟動 Nginx(例如 nginx.exe -c conf\nginx.conf)。無論使用哪種操作系統,您都可以通過訪問服務器 IP

See all articles