如何設(shè)置Debian Nginx日志輪轉(zhuǎn)

如何設(shè)置Debian Nginx日志輪轉(zhuǎn)

本文介紹如何在 debian 系統(tǒng)上配置 nginx 日志輪轉(zhuǎn),主要利用 logrotate 工具

步驟一:安裝 logrotate

首先,確保系統(tǒng)已安裝 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

步驟三:添加配置文件內(nèi)容

將以下內(nèi)容添加到 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 }

參數(shù)說明:

  • daily:每天輪轉(zhuǎn)日志。
  • missingok:如果日志文件不存在,則忽略錯(cuò)誤。
  • rotate 7:保留 7 個(gè)日志文件。
  • compress:壓縮已輪轉(zhuǎn)的日志文件。
  • delaycompress:延遲壓縮,直到下次輪轉(zhuǎn)。
  • notifempty:如果日志文件為空,則不進(jìn)行輪轉(zhuǎn)。
  • create 0640 www-data adm:創(chuàng)建新的日志文件,權(quán)限為 0640,所有者為 www-data,組為 adm。
  • sharedscripts:多個(gè)日志文件共享同一個(gè) postrotate 腳本。
  • postrotate … endscript:輪轉(zhuǎn)后執(zhí)行的腳本,發(fā)送 USR1 信號(hào)給 Nginx 進(jìn)程,使其重新打開日志文件。 注意,這里將 cat /var/run/nginx.pid 使用了命令替換 $(…),更安全。

步驟四:測(cè)試配置

使用以下命令測(cè)試配置:

sudo logrotate -d /etc/logrotate.d/nginx

-d 參數(shù)用于測(cè)試模式,不會(huì)實(shí)際執(zhí)行輪轉(zhuǎn)。 如有錯(cuò)誤,會(huì)顯示出來。

步驟五:驗(yàn)證定時(shí)任務(wù)

logrotate 通常由每日 cron 任務(wù)自動(dòng)運(yùn)行。您可以檢查 /etc/cron.daily/logrotate 文件以確認(rèn):

cat /etc/cron.daily/logrotate

如果該文件存在且包含正確的 logrotate 命令,則日志輪轉(zhuǎn)將每天自動(dòng)執(zhí)行。

完成以上步驟后,您的 Debian 系統(tǒng)上的 Nginx 日志將按照配置進(jìn)行輪轉(zhuǎn)。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊13 分享