溫馨提示×

如何設置nginx日志的輪轉周期

小樊
81
2025-03-05 07:11:26
欄目: 編程語言

要設置 Nginx 日志的輪轉周期,您可以使用 logrotate 工具。以下是配置 Nginx 日志輪轉的步驟:

  1. 確保 logrotate 已經安裝在您的系統上。在大多數 Linux 發行版中,logrotate 已經預裝。如果沒有,請使用包管理器(如 apt-get 或 yum)安裝。

  2. 創建一個 logrotate 配置文件,專門用于 Nginx 日志。在 /etc/logrotate.d/ 目錄下創建一個名為 nginx 的文件:

sudo touch /etc/logrotate.d/nginx
  1. 使用文本編輯器打開 /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 腳本。
  • postrotateendscript 之間的腳本會在日志輪轉后執行。這里我們發送 USR1 信號給 Nginx 主進程,通知它重新打開日志文件。
  1. 保存并關閉文件。

  2. 測試 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 以每周輪轉一次日志。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女