本文介紹如何在 Debian 系統上配置 Nginx 日志輪轉,主要利用 logrotate 工具。
步驟一:安裝 logrotate
首先,確保系統已安裝 logrotate:
sudo apt-get update sudo apt-get install logrotate
步驟二:創(chuàng)建或編輯 Nginx logrotate 配置文件
在 /etc/logrotate.d/ 目錄下創(chuàng)建或編輯名為 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:創(chuàng)建新的日志文件,權限為 0640,所有者為 www-data,組為 adm。
- sharedscripts:多個日志文件共享同一個 postrotate 腳本。
- postrotate … endscript:輪轉后執(zhí)行的腳本,發(fā)送 USR1 信號給 Nginx 進程,使其重新打開日志文件。 注意,這里將 cat /var/run/nginx.pid 使用了命令替換 $(…),更安全。
步驟四:測試配置
使用以下命令測試配置:
sudo logrotate -d /etc/logrotate.d/nginx
-d 參數用于測試模式,不會實際執(zhí)行輪轉。 如有錯誤,會顯示出來。
步驟五:驗證定時任務
logrotate 通常由每日 cron 任務自動運行。您可以檢查 /etc/cron.daily/logrotate 文件以確認:
cat /etc/cron.daily/logrotate
如果該文件存在且包含正確的 logrotate 命令,則日志輪轉將每天自動執(zhí)行。
完成以上步驟后,您的 Debian 系統上的 Nginx 日志將按照配置進行輪轉。