Logging
NginX 日誌輪換
我在同一台伺服器上通過 NginX 為幾個不同的域提供服務,它們每個都記錄到自己的文件中。我需要設置一個腳本來旋轉,壓縮這些文件並將其添加到 cron。
我知道一旦我移動舊的日誌文件,我必須做一些事情讓 NginX 打開一個新的日誌文件。有人可以給我安全輪換 nginx 日誌文件的程序嗎?我猜我需要使用 logrotate,我該如何配置它?
系統:
- Ubuntu 9.04 伺服器版。
- nginx/0.7.61
當您向它們發送掛斷信號
SIGHUP
(Nginx 並沒有完全遵循這個約定,但它以USR1
相同的方式響應信號,如 Nginx 網站上標題為Log Rotation的記錄。所以,你可以嘗試類似
kill -s USR1 `pidof nginx`
logrotating nginx 日誌:
# nginx SIGUSR1: Re-opens the log files. /opt/nginx/logs/access.log { missingok notifempty delaycompress sharedscripts postrotate test ! -f /opt/nginx/logs/nginx.pid || kill -USR1 `cat /opt/nginx/logs/nginx.pid` endscript } /opt/nginx/logs/error.log { missingok notifempty delaycompress sharedscripts postrotate test ! -f /opt/nginx/logs/nginx.pid || kill -USR1 `cat /opt/nginx/logs/nginx.pid` endscript }
logrotating rails 生產日誌:
/home/app_user/apps/railsapp/log/production.log { missingok notifempty delaycompress sharedscripts postrotate test ! -f /opt/nginx/logs/nginx.pid || kill -USR1 `cat /opt/nginx/logs/nginx.pid` endscript }