要設置 Nginx 日志的輪轉周期,您可以使用 logrotate 工具。以下是配置 Nginx 日志輪轉的步驟:
確保 logrotate 已經安裝在您的系統上。在大多數 Linux 發行版中,logrotate 已經預裝。如果沒有,請使用包管理器(如 apt-get 或 yum)安裝。
創建一個 logrotate 配置文件,專門用于 Nginx 日志。在 /etc/logrotate.d/
目錄下創建一個名為 nginx
的文件:
sudo touch /etc/logrotate.d/nginx
/etc/logrotate.d/nginx
文件,并添加以下內容:/var/log/nginx/*.log {
daily
missingok
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
: 如果日志文件不存在,不會產生錯誤。compress
: 輪轉后的日志文件會被壓縮。delaycompress
: 延遲壓縮,直到下一次輪轉。notifempty
: 如果日志文件為空,不進行輪轉。create 0640 www-data adm
: 輪轉后創建新的日志文件,權限為 0640,屬主為 www-data,屬組為 adm。sharedscripts
: 如果有多個日志文件,只執行一次 postrotate 腳本。postrotate
和 endscript
之間的腳本會在日志輪轉后執行。這里我們發送 USR1 信號給 Nginx 主進程,通知它重新打開日志文件。保存并關閉文件。
測試 logrotate 配置是否正確。運行以下命令:
sudo logrotate -f /etc/logrotate.d/nginx
如果一切正常,您應該會看到類似以下的輸出:
reading config file /etc/logrotate.d/nginx
...
Processing: /var/log/nginx/access.log
...
這表示 Nginx 日志已經成功輪轉。
現在,Nginx 日志將根據您在配置文件中設置的周期自動輪轉。如果您想要修改輪轉周期,只需編輯 /etc/logrotate.d/nginx
文件中的 daily
選項即可。例如,將其更改為 weekly
以每周輪轉一次日志。