Debian Nginx日志格式自定義指南

Debian Nginx日志格式自定義指南

本文將指導您如何在debian系統上自定義nginx日志格式,包含日志格式定義、在虛擬主機中應用自定義格式以及Nginx重啟等步驟,并提供日志回滾方案。

一、自定義Nginx日志格式

  1. 修改Nginx配置文件: 打開/etc/nginx/nginx.conf文件。使用log_format指令定義自定義格式。例如,添加$upstream_response_time變量記錄上游服務器響應時間:
http {     log_format my_custom_log '$remote_addr - $remote_user [$time_local] "$request" '                               '"$status" $body_bytes_sent "$http_referer" '                               '"$http_user_agent" $upstream_response_time $request_time'; }
  1. 應用自定義格式: 在虛擬主機配置文件(通常位于/etc/nginx/conf.d/目錄下),使用access_log指令應用自定義格式:
server {     Access_log /var/log/nginx/access.log my_custom_log;     # ...其他配置... }
  1. 重啟Nginx: 保存配置文件后,執行以下命令:
sudo nginx -t  # 檢查配置文件語法 sudo systemctl reload nginx # 重新加載配置

二、日志格式參數詳解

下表列出常用參數:

參數 說明
$remote_addr 客戶端IP地址
$remote_user 客戶端用戶名(未認證則為”-“)
$time_local 本地時間
$request 請求行(例如:GET /index.html HTTP/1.1)
$status HTTP狀態碼
$body_bytes_sent 發送給客戶端的字節數
$http_referer HTTP Referer頭
$http_user_agent 用戶代理字符串
$upstream_response_time 上游服務器響應時間
$request_time 請求處理總時間
$ssl_protocol SSL協議版本(如有)
$ssl_cipher SSL加密套件(如有)
$upstream_addr 上游服務器地址

三、日志輪轉方案 (Log Rotation)

為避免日志文件過大,建議配置日志輪轉??梢允褂胠ogrotate工具

  1. 配置logrotate: 編輯/etc/logrotate.d/nginx文件(若不存在則創建),添加以下內容:
/var/log/nginx/*.log {     daily     rotate 7     missingok     notifempty     compress     create 0644 nginx nginx     dateext     dateformat -%Y-%m-%d }

此配置每天輪轉日志,保留7天,壓縮舊日志,并添加日期后綴。

  1. 測試配置: 執行以下命令測試logrotate配置:
sudo logrotate -d /etc/logrotate.conf
  1. 重啟Nginx: 測試通過后,重新加載Nginx配置。

通過以上步驟,您即可在Debian系統上自定義Nginx日志格式并實現日志輪轉,方便日志管理和分析。

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享