nginx
作為乙個成熟、久經考驗的負載均衡軟體,與其提供豐富、完整的內建變數是分不開的,它極大增加了對nginx
網路行為的控制細度。這些變數大部分都是在請求進入時解析的,並把他們快取到請求cycle
中,方便下一次獲取使用。首先來看看nginx
對都開放了那些api
。
參看下表:
名稱說明
$arg_name
請求中的name引數
$args
請求中的引數
$binary_remote_addr
遠端位址的二進位制表示
$body_bytes_sent
已傳送的訊息體位元組數
$content_length
http請求資訊裡的"content-length"
$content_type
請求資訊裡的"content-type"
$document_root
針對當前請求的根路徑設定值
$document_uri
與$uri相同; 比如 /test2/test.php
$host
請求資訊中的"host",如果請求中沒有host行,則等於設定的伺服器名
$hostname
機器名使用 gethostname系統呼叫的值
cookie 資訊
引用位址
客戶端**資訊
最後乙個訪問伺服器的ip位址。
相當於網路訪問路徑
$is_args
如果請求行帶有引數,返回「?」,否則返回空字串
$limit_rate
對連線速率的限制
$nginx_version
當前執行的nginx版本號
$pid
worker程序的pid
$query_string
與$args相同
$realpath_root
按root指令或alias指令算出的當前請求的絕對路徑。其中的符號鏈結都會解析成真是檔案路徑
$remote_addr
客戶端ip位址
$remote_port
客戶端埠號
$remote_user
客戶端使用者名稱,認證用
$request
使用者請求
$request_body
這個變數(0.7.58+)包含請求的主要資訊。在使用proxy_pass或fastcgi_pass指令的location中比較有意義
$request_body_file
客戶端請求主體資訊的臨時檔名
$request_completion
如果請求成功,設為"ok";如果請求未完成或者不是一系列請求中最後一部分則設為空
$request_filename
當前請求的檔案路徑名,比如/opt/nginx/www/test.php
$request_method
請求的方法,比如"get"、"post"等
$request_uri
請求的uri,帶引數
$scheme
所用的協議,比如http或者是https
$server_addr
伺服器位址,如果沒有用listen指明伺服器位址,使用這個變數將發起一次系統呼叫以取得位址(造成資源浪費)
$server_name
請求到達的伺服器名
$server_port
請求到達的伺服器端口號
$server_protocol
請求的協議版本,"http/1.0"或"http/1.1"
$uri
請求的uri,可能和最初的值有不同,比如經過重定向之類的
其實這還不是全部,nginx
在不停迭代更新是乙個原因,還有乙個是有些變數太冷門,借助它們,會有很多玩法。
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 傳...
nginx內建變數
今天在整理nginx的rewrite規則,發現遇到許多關於nginx內建變數的判斷,所以此處將nginx的內建變數溫習一遍 nginx支援的所有內建變數 arg name 請求中的的引數名,即 後面的arg name arg value形式的arg name args 請求中的引數值 binary ...