Nginx日志轮转策略可以通过配置logrotate
工具来实现。以下是一个基本的配置示例,展示了如何设置Nginx日志轮转策略:
创建logrotate配置文件:
首先,创建一个新的logrotate配置文件,例如/etc/logrotate.d/nginx
。
sudo nano /etc/logrotate.d/nginx
配置logrotate: 在这个文件中,添加以下内容来配置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
}
解释一下这些选项的含义:
daily
: 每天轮转一次日志。missingok
: 如果日志文件丢失,不要报错。rotate 7
: 保留7个轮转后的日志文件。compress
: 轮转后的日志文件进行压缩。delaycompress
: 延迟压缩,直到下一次轮转。notifempty
: 如果日志文件为空,则不进行轮转。create 0640 www-data adm
: 创建新的日志文件,权限为0640,属主为www-data,属组为adm。sharedscripts
: 如果有多个日志文件匹配,只执行一次postrotate脚本。postrotate
: 在轮转日志后执行的脚本。这里使用kill -USR1
命令通知Nginx重新打开日志文件。测试配置: 保存并关闭文件后,可以使用以下命令测试logrotate配置是否正确:
sudo logrotate -f /etc/logrotate.d/nginx
这个命令会强制轮转Nginx日志,并输出详细的日志信息。
自动轮转:
logrotate通常会每天自动运行一次,检查并轮转符合条件的日志文件。你可以通过查看/var/lib/logrotate/status
文件来确认logrotate的状态和历史记录。
通过以上步骤,你可以成功配置Nginx日志的轮转策略,确保日志文件不会无限增长,同时保留一定数量的轮转日志文件以便后续分析。