如何設置Debian Nginx日志輪轉

如何設置Debian Nginx日志輪轉

本文介紹如何在 debian 系統上配置 nginx 日志輪轉,主要利用 logrotate 工具

步驟一:安裝 logrotate

首先,確保系統已安裝 logrotate:

sudo apt-get update sudo apt-get install logrotate

步驟二:創建或編輯 Nginx logrotate 配置文件

在 /etc/logrotate.d/ 目錄下創建或編輯名為 nginx 的配置文件:

sudo nano /etc/logrotate.d/nginx

步驟三:添加配置文件內容

將以下內容添加到 nginx 文件中:

/var/log/nginx/*.log {     daily     missingok     rotate 7     compress     delaycompress     notifempty     create 0640 www-data adm     sharedscripts     postrotate         if [ -f /var/run/nginx.pid ]; then             kill -USR1 $(cat /var/run/nginx.pid)         fi     endscript }

參數說明:

  • daily:每天輪轉日志。
  • missingok:如果日志文件不存在,則忽略錯誤。
  • rotate 7:保留 7 個日志文件。
  • compress:壓縮已輪轉的日志文件。
  • delaycompress:延遲壓縮,直到下次輪轉。
  • notifempty:如果日志文件為空,則不進行輪轉。
  • create 0640 www-data adm:創建新的日志文件,權限為 0640,所有者為 www-data,組為 adm。
  • sharedscripts:多個日志文件共享同一個 postrotate 腳本。
  • postrotate … endscript:輪轉后執行的腳本,發送 USR1 信號給 Nginx 進程,使其重新打開日志文件。 注意,這里將 cat /var/run/nginx.pid 使用了命令替換 $(…),更安全。

步驟四:測試配置

使用以下命令測試配置:

sudo logrotate -d /etc/logrotate.d/nginx

-d 參數用于測試模式,不會實際執行輪轉。 如有錯誤,會顯示出來。

步驟五:驗證定時任務

logrotate 通常由每日 cron 任務自動運行。您可以檢查 /etc/cron.daily/logrotate 文件以確認:

cat /etc/cron.daily/logrotate

如果該文件存在且包含正確的 logrotate 命令,則日志輪轉將每天自動執行。

完成以上步驟后,您的 Debian 系統上的 Nginx 日志將按照配置進行輪轉。

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