> 服务器 >

linux下Apache配置日志文件,防止ErrorLog CustomLog日志过大

来源:网络 文章列表 2019-04-11 8
apache配置ErrorLog CustomLog日志文件大小、按天生成日志文件的配置方法

问题描述:

网站磁盘空间爆满,检查apache服务器,发现是apache的访问日志和错误日志过大导致的。

问题原由:

Apache默认安装下,志记录只有一个文件。如果我们在配置虚拟主机的时候,一般可能会配置ErrorLog CustomLog 记录。如果apache开启了日志文件以及错误日志功能,那么很可能apache的访问日志文件access.log和错误日志会在一段时间内变成一个几百兆甚至几G的文件,尤其大访问量的网站更是如此。如果文件过大首先会导致运维人员不好查看日志,甚至文件过大,会导致磁盘空间爆满,影响服务器的正常运行。

解决办法:

通过配置httpd.conf文件,我们可以实现按天记录日志或者按文件大小来记录日志。

在 Linux 下的设置例子如下,打开httpd.conf文件或者虚拟主机配置文件:

找到ErrorLog CustomLog 配置的地方(此处以虚拟主机的config文件举例)

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

修改为下面的代码

<VirtualHost *:80>
  DocumentRoot /home/wwwroot/www.jsphp.net
  ServerName jsphp.net
  ServerAlias www.jsphp.net
  DirectoryIndex index.php index.html
  <Directory "/home/wwwroot/www.jsphp.net">
	Options FollowSymLinks
	AllowOverride all
	Order allow,deny
	Allow from all
  </Directory>
  ErrorLog "|/usr/apache/bin/rotatelogs /home/wwwlogs/wwwjsphpnet/error-%Y-%m-%d.log 86400"  
  CustomLog "|/usr/apache/bin/rotatelogs /home/wwwlogs/wwwjsphpnet/access-%Y-%m-%d.log 86400" common
</VirtualHost>

请看这2行代码

ErrorLog "|/usr/apache/bin/rotatelogs /home/wwwlogs/wwwjsphpnet/error-%Y-%m-%d.log 86400"  
CustomLog "|/usr/apache/bin/rotatelogs  /home/wwwlogs/wwwjsphpnet/access-%Y-%m-%d.log 86400" 

上面二行代码的意思是每天生成一个 errorLog CustomLog 日志文件。

  • 1、注意,因为我服务器上放了很多个网站,所以我加了个目录 wwwjsphpnet 。设置的时候,必须保证有此目录,apache不会自动新建目录所以,必须要保证目录存在,否则日志不会生成的。
  • 2、上文中的86400为一天的秒数
  • 3、rotatelogs  是apache服务器的一个服务,用来限制日志文件大小的。rotatelogs的位置一般在(apache安装目录/bin/目录下),配置时需要设置为你自己的路径。
  • 4、重启Apache服务器。

补充1:

除了按天生成日志,我们还可以按文件大小来生成日志

# 限制错误日志文件为 10M
ErrorLog "|/usr/apache/bin/rotatelogs /home/wwwlogs/wwwjsphpnet/error-%Y-%m-%d.log 10M"

# 限制访问日志文件为 10M
CustomLog "|/usr/apache/bin/rotatelogs  /home/wwwlogs/wwwjsphpnet/access-%Y-%m-%d.log 10M" common

 

Windows 主机的设置方法:

在 Windows 主机设置下的设置例子如下(路径请根据你的服务器设置修改):
第一步:删除 Apache2/logs/目录下的 error.log、access.log文件

第二步:打开 Apache 的 httpd.conf配置文件并找到下面两条配置

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

直接注释掉,换成下面的配置文件。

# 限制错误日志文件为 10M
ErrorLog “|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 10M”

# 每天生成一个错误日志文件
#ErrorLog “|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 86400″

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

 

腾讯云限量秒杀

1核2G 5M 50元/年 2核4G 8M 74元/年 4核8G 5M 818元/年 CDN流量包 100GB 9元

版权声明

本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。

评论

  • 随机获取
点击刷新
精彩评论

友情链接