要修改 Nginx 日志格式,你需要編輯 Nginx 配置文件。通常情況下,配置文件位于 /etc/nginx/nginx.conf
或 /etc/nginx/sites-available/
目錄下的某個虛擬主機配置文件中。以下是修改 Nginx 日志格式的步驟:
/etc/nginx/nginx.conf
或 /etc/nginx/sites-available/your_domain.conf
文件。例如,使用 nano 編輯器:sudo nano /etc/nginx/nginx.conf
或者
sudo nano /etc/nginx/sites-available/your_domain.conf
將 your_domain.conf
替換為你的虛擬主機配置文件名。
http
塊中,找到 log_format
指令。如果沒有找到,請在 http
塊中添加一個。例如,創建一個名為 custom_log_format
的自定義日志格式:http {
...
log_format custom_log_format '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$http_x_forwarded_for"';
...
}
這里的日志格式包含了 IP 地址、遠程用戶、時間、請求、狀態碼、發送的字節數、引用頁、用戶代理和 X-Forwarded-For 頭部。你可以根據需要自定義這些變量。
server
塊中,找到 access_log
指令。將其值更改為你剛剛創建的自定義日志格式。例如:server {
...
access_log /var/log/nginx/your_domain.access.log custom_log_format;
...
}
將 your_domain.access.log
替換為你希望存儲訪問日志的文件名。
保存更改并退出文本編輯器。
重載 Nginx 以應用更改:
sudo nginx -t
如果配置文件中的語法正確,你將看到以下輸出:
nginx: configuration file /etc/nginx/nginx.conf test is successful
然后運行以下命令重載 Nginx:
sudo systemctl reload nginx
現在,Nginx 將使用你自定義的日志格式記錄訪問日志。