nginx日志轮转&定期清理
·
发现有些客户部署的服务nginx日志没有轮转,随着业务日志增多,有的一个log文件十几G,设置几十G,甚至磁盘直接干满了,服务504了。。
所以配置日志轮转及过期日志的定期清理很有必要。
以下有2种方式配置
1. 创建logrotate配置文件
cd /etc/logrotate.d/
vim nginx
配置文件内容如下:
# /etc/logrotate.d/nginx
# 下面是nginx日志路径,具体跟部署的nginx有关
/var/log/nginx/*.log {
daily # 每天轮转
missingok # 日志不存在时不报错
rotate 30 # 保留30个备份
compress # 压缩旧日志
delaycompress # 延迟一天压缩(方便排查)
notifempty # 空日志不轮转
create 640 www-data adm # 创建新文件的权限和属主
sharedscripts # 所有日志处理完后执行一次脚本
postrotate # 轮转后执行的命令
# 方法1:使用USR1信号(推荐)
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
# 方法2:使用nginx命令重载
# /usr/sbin/nginx -s reload 2>/dev/null || true
# 方法3:使用systemd(推荐,如果使用systemd)
# systemctl reload nginx 2>/dev/null || true
endscript
}
2 nginx内置的配置文件
# /etc/nginx/nginx.conf
http {
# 按天轮转(需要手动或cron重命名文件)
access_log /var/log/nginx/access.log;
# 或使用变量实现按天分割
access_log /var/log/nginx/access-$year-$month-$day.log;
# 更优雅的方式:在server块中配置
}
最后crontab -e添加定时任务定时删除
更多推荐




所有评论(0)