一、需求:
1.nginx的访问日志及访问错误日志默认是保存在一个指定的文件内,如果访问量很大,文件会变
的很大,影响的日志写入的速度及备份,因此需要对nginx的日志进行按日分割并进行压缩,
压缩日志保存30天(根据需要调节)
二、解决方案
使用cron和logrotate来管理日志文件
1.编写nginx的logrotate配置文件,并将文件放到/etc/logrotate.d目录下,权限0644
文件内容:
/data/httplogs/*.log {
daily
rotate 30
missingok
notifempty
compress
sharedscripts
olddir /data/httplogs/old_log
postrotate
/bin/kill -HUP `cat /var/run/nginx.pid 2> /dev/null` 2> /dev/null || true
endscript
}
注释:/data/httplogs/*.log nginx访问日志文件存放的目录,默认是所有.log文件
日志每天截断并压缩,保留30天的数据(空日志文件不处理)
压缩的日志文件存储到指定的日志保存目录 /data/httplogs/old_log
在日志截断后,重启nginx,以便生成新的访问日志
2. 确认 logrotate运行正常
1)检查 logrotate主配置文件/etc/logrotate.conf
2) 确认/etc/cron.daily/下面有logrotate脚本
参考资料: