管理apache服务器有些年头,虽然最近几年被nginx抢了不少风头,但我依然钟爱apache。


喜欢它强劲的并发处理能力,以及forker与worker模式间自由选择的快感,哈哈。


熟悉linux下apache运维的朋友,多少都会遇到过apache日志文件太大的问题,网站刚上线时不会在意到这个问题,因为流量小,自然error.log与access.log文件内容也就少,文件容量不大,因此,配置时也不会考虑apache日志维护的什么策略啥的。


当网站流量上涨到一定程序时,单个的error.log或access.log将无法应对日益增长的日志文件,以及日志分析的需求了。


思路就是要对文件限制大小,然后进行回滚,也就是常说的apache日志分割与轮循了。


如何正确解决这个问题呢,网上现成的文章很多,这里整理几篇,留作备忘。

笔者参考以上资料,完成了apache日志分件的回滚操作,每个日志文件限定为指定的大小,然后按天生成日志文件,观察了一段时间,效果不错。


下面附上我的apache日志回滚的配置内容:

默认配置:

CustomLog "logs/access.log" common
ErrorLog "logs/error.log"


修改后的配置:

CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common
CustomLog "|bin/rotatelogs /var/logs/logfile 5M" common
ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"


例2:

# 限制错误日志文件为 1M
ErrorLog “|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 1M”
# 每天生成一个错误日志文件
#ErrorLog “|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 86400″
# 限制访问日志文件为 1M
CustomLog “|bin/rotatelogs.exe -l logs/access-%Y-%m-%d.log 1M” common
# 每天生成一个访问日志文件
#CustomLog “|bin/rotatelogs.exe -l logs/access-%Y-%m-%d.log 86400″ common


如果你也遇到了apache日志文件增长太快,日志文件太大的问题,不妨一试。

方法很简单,效果很明显。