Nginx的日志格式可以通過配置文件 log_format
定義,并且可以通過 access_log
指令來指定日志文件的存放路徑、格式和緩存大小。以下是Nginx日志格式的詳細解讀:
log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';
$remote_addr
:記錄客戶端IP地址。$remote_user
:記錄客戶端用戶名稱,如果網站未加密則顯示“-”。$time_local
:記錄訪問時間和時區,如 18/Jul/2012:17:00:01 +0800
。$request
:記錄客戶端請求的URL和HTTP協議,如 "GET /index.html HTTP/1.1"
。$status
:記錄HTTP請求狀態碼,如 200
。$body_bytes_sent
:記錄發送給客戶端的字節數,不包括響應頭的大小。$http_referer
:記錄請求來源頁面。$http_user_agent
:記錄客戶端瀏覽器信息。$http_x_forwarded_for
:記錄客戶端的真實IP地址,通常在反向代理時使用。log_format custom '$server_name $remote_addr - $remote_user [$time_local] "$request" ' '$status $upstream_status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for" ''$ssl_protocol $ssl_cipher $upstream_addr $request_time $upstream_response_time';
$server_name
:虛擬主機名稱。$ssl_protocol
:SSL協議版本。$ssl_cipher
:交換數據中的算法。http {
log_format custom;
access_log /var/log/nginx/access.log custom;
}
Nginx 日志可以通過 logrotate
進行切割,配置文件通常位于 /etc/logrotate.d/
目錄下。
希望以上信息能幫助您更好地理解和分析Nginx日志。