常用内置變量 , 有時候在使用nginx排查問題 , 或者進行各種操作的時候 , 都有用處
以下僅列出一些常用變量,更多變量請到nginx官網查閱
http://nginx.org/en/docs/varindex.html
1. 從請求行中解析的變量
以通路http://localhost:80/nginx/varindex?a=1&b=2得到的結果GET /nginx/varindex?a=1&b=2 HTTP/1.1 為例(可以在access.log日志中看到通路結果)
$arg_name
請求行中的參數,$arg_a=1,$arg_b=2,若無參數則為空字元串
$is_args
請求行中是否包含參數,若包含,則$is_args=?,否則為空字元串
$args
請求行中的全部參數,$args=a=1&b=2,若無參數則為空字元串
$request
完整的原始的請求行,GET /nginx/varindex?a=1&b=2 HTTP/1.1
$request_method
請求方法,如GET、POST
$request_uri
完整的原始請求URI,通路的URL除去域名(或IP)和port,如/nginx/varindex?a=1&b=2
$document_uri/$uri
請求規範化以後的URI,可能與$request_uri不同,值可能随請求的處理過程而改變
$server_protocol
請求的協定版本,如HTTP/1.0
以上變量在配置檔案中通常配合try_files指令和rewrite指令使用
複制代碼
2. 從請求頭中解析到的變量
$host
請求頭的值,以下順序獲得:請求行中的host、請求頭中的Host、配置檔案中比對到的server_name
$remote_addr
用戶端ip位址
$remote_port
用戶端端口
$remote_user
基本身份驗證随附的使用者名
$http_cookie
Cookie請求頭的值
$http_user_agent
使用者代理
$cookie_name
Cookie中名為name的值
$http_referer
Http-Referer請求頭的值
3. 其他變量
名為name的cookie
$protocol
與用戶端通信的協定: TCP或UDP(1.11.4)
$hostname
運作nginx的伺服器主機名
$server_name
接受請求的伺服器主機名
$body_bytes_sent
發送給用戶端的位元組數
$connection_requests
通過連接配接發出的目前請求數
$limit_rate
用于設定響應的速度限制
$time_local
通用日志格式的本地時間
$status
響應狀态傳回碼
$request_time
請求處理時間
$proxy_add_x_fowarded_for
在用戶端傳遞來的X-Forwarded-For請求頭後面追加$remote_addr(用逗号分隔)
如果用戶端沒有傳遞X-Forwarded-For請求頭,那麼該變量等于$remote_addr
$msec
以毫秒為機關的目前時間
$scheme
請求模式,http或https
$nginx_version
Nginx版本
$pid
工作程序的PID
通過日志列印這些資料
