Nginx訪問日志可以設置自定義的格式,來滿足特定的需求。
示例:
示例1 log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]' '$host "$request_uri" $status' '"$http_referer" "$http_user_agent"'; 示例2 log_format main '$remote_addr [$time_local] ' '$host "$request_uri" $status "$request"' '"$http_referer" "$http_user_agent" "$request_time"'; 若不配置log_format或者不在access_log配置中指定log_format,則默認格式為: '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent";
常見變量:
| 變量 | 說明 |
|---|---|
| $time_local | 通用日志格式下的本地時間;(服務器時間) |
| $remote_addr | 客戶端(用戶)IP地址 |
| $status | 請求狀態碼,如200,404,301,302等 |
| $body_bytes_sent | 發送給客戶端的字節數,不包括響應頭的大小 |
| $bytes_sent | 發送給客戶端的總字節數 |
| $request_length | 請求的長度(包括請求行,請求頭和請求正文) |
| $request_time | 請求處理時間,單位為秒,小數的形式 |
| $upstream_addr | 集群輪詢地址 |
| $upstream_response_time | 指從Nginx向后端(php-cgi)建立連接開始到接受完數據然后關閉連接為止的時間 |
| $remote_user | 用來記錄客戶端用戶名稱 |
| $request | 請求方式(GET或者POST等)+URL(包含$request_method,$host,$request_uri) |
| $http_user_agent | 用戶瀏覽器標識 |
| $http_host | 請求的url地址(目標url地址)的host |
| $host | 等同於$http_host |
| $http_referer | 來源頁面,即從哪個頁面轉到本頁,如果直接在瀏覽器輸入網址來訪問,則referer為空 |
| $uri | 請求中的當前URI(不帶請求參數,參數位於$args),不同於瀏覽器傳遞的$request_uri的值,它可以通過內部重定向,或者使用index指令進行修改。 |
| $document_uri | 等同於$uri |
| $request_uri | 比$uri多了參數,即$uri+$args |
| $http_x_forwarded_for | 如果使用了代理,這個參數會記錄代理服務器的ip和客戶端的ip |
