
通过logrotate工具可以实现Nginx日志的轮转策略。下面是一个基本的配置示例,展示了如何设置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日志的轮转策略,确保日志文件不会无限增长,同时保留一定数量的轮转日志文件以便后续分析。










