Nginx常用變量
測試demo
發(fā)起一次請求,地址為 http://ngxin.arg.test/a/b/c/?d=test&e=123&username=用戶
GET /a/b/c/?d=test&e=123&username=%E7%94%A8%E6%88%B7 HTTP/1.1
Host: ngxin.arg.test
Connection: keep-alive
Cache-Control: max-age=0
DNT: 1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
常用變量
| 名稱 | 說明 | demo值 |
|---|---|---|
| $arg_* | *可具體為請求中的某個參數 | $arg_d=test |
| $args | 請求中的參數 | d=test&e=123&username=%E7%94%A8%E6%88%B7 |
| $binary_remote_addr | 遠程地址的二進制表示 | |
| $body_bytes_sent | 已發(fā)送的消息體字節(jié)數 | 0 |
| $content_length | HTTP請求信息里的"Content-Length" | |
| $content_type | 請求信息里的"Content-Type" | |
| $document_root | 針對當前請求的根路徑設置值 | |
| $document_uri | 與$uri相同; | /a/b/c/ |
| $host | 請求信息中的"Host",如果請求中沒有Host行,則等于設置的服務器名 | ngxin.arg.test |
| $hostname | 機器名使用 gethostname系統(tǒng)調用的值 | |
| $http_cookie | cookie 信息 | |
| $http_referer | 引用地址 | |
| $http_user_agent | 客戶端代理信息 | |
| $http_via | 最后一個訪問服務器的Ip地址。 | |
| $http_x_forwarded_for | 相當于網絡訪問路徑 | |
| $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,帶參數 /a/b/c/?d=test&e=123&username=%E7%94%A8%E6%88%B7 | |
| $scheme | 所用的協(xié)議,比如http或者是https | http |
| $server_addr | 服務器地址,如果沒有用listen指明服務器地址,使用這個變量將發(fā)起一次系統(tǒng)調用以取得地址(造成資源浪費) | 127.0.0.1 |
| $server_name | 請求到達的服務器名 ngxin.arg.test | |
| $server_port | 請求到達的服務器端口號 80 | |
| $server_protocol | 請求的協(xié)議版本,“HTTP/1.0"或"HTTP/1.1” HTTP/1.1 | |
| $uri | 請求的URI,可能和最初的值有不同,比如經過重定向之類的 | /a/b/c/ |