Nginx日志輪轉通常是通過logrotate
工具來實現的。以下是一個基本的配置示例,用于配置Nginx日志的輪轉:
首先,確保你的系統上已經安裝了logrotate
。在大多數Linux發行版中,它通常是預裝的。如果沒有,你可以使用包管理器(如apt
、yum
或pacman
)來安裝它。
創建一個logrotate
配置文件,專門用于Nginx日志。通常,這個文件位于/etc/logrotate.d/nginx
。你可以使用文本編輯器創建或編輯這個文件,例如使用nano
:
sudo nano /etc/logrotate.d/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
}
這里的配置選項解釋如下:
daily
: 每天輪轉日志。missingok
: 如果日志文件丟失,不要報錯。rotate 7
: 保留7個輪轉日志文件。compress
: 壓縮舊的日志文件。notifempty
: 如果日志文件為空,則不進行輪轉。create 0640 www-data adm
: 創建新的日志文件,權限為0640,屬主為www-data,屬組為adm。sharedscripts
: 如果有多個日志文件,只執行一次postrotate
腳本。postrotate
…endscript
: 在輪轉日志后執行的腳本。這里發送一個USR1信號給Nginx進程,通知它重新打開日志文件。現在,logrotate
將按照你的配置自動輪轉Nginx日志。你可以手動觸發日志輪轉來測試配置是否正確:
sudo logrotate -f /etc/logrotate.d/nginx
這將強制執行Nginx日志的輪轉。檢查/var/log/nginx
目錄,確保新的日志文件已經創建,并且舊的日志文件已經被壓縮。