在Debian系統中,Nginx日志輪轉通常是通過logrotate
工具來實現的。默認情況下,logrotate
的配置文件位于/etc/logrotate.d/nginx
。你可以根據需要編輯這個文件來自定義日志輪轉的行為。
以下是一個基本的logrotate
配置示例,用于Nginx日志輪轉:
/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
這個配置的含義如下:
/var/log/nginx/*.log
:指定需要輪轉的日志文件路徑。daily
:每天輪轉一次日志。missingok
:如果日志文件不存在,不會產生錯誤。rotate 7
:保留7個輪轉后的日志文件。compress
:輪轉后的日志文件使用gzip壓縮。notifempty
:如果日志文件為空,則不進行輪轉。create 0640 www-data adm
:創建新的日志文件,權限為0640,屬主為www-data,屬組為adm。sharedscripts
:如果有多個日志文件匹配,只執行一次postrotate腳本。postrotate
和endscript
之間的部分:輪轉后執行的腳本。這里發送USR1信號給Nginx進程,通知它重新打開日志文件。要應用這個配置,只需確保/etc/logrotate.d/nginx
文件存在并包含上述內容。logrotate
工具通常每天運行一次,可以通過cron
任務來實現。在Debian系統中,logrotate
的cron
任務通常位于/etc/cron.daily/logrotate
。
如果你需要修改日志輪轉的行為,可以編輯/etc/logrotate.d/nginx
文件。在修改配置后,logrotate
會在下一次運行時應用新的配置。你也可以手動觸發logrotate
來立即應用更改,使用以下命令:
sudo logrotate -f /etc/logrotate.conf
這將強制logrotate
處理所有配置文件,包括/etc/logrotate.d/nginx
。