Apache Log的简要配置

Server-服务器部署 8727 Views 0 Comments

    服务器日志(Server Log)对网站主或者服务器管理人员来说起到了十分重要的作用。服务器日志一般有以下几个用途:

1、分析网站的访问量和带宽使用情况

2、分析网站中的死链,查看那些页面是404、403、500等错误。

3、分析搜索引擎对该网站爬取情况,以便让网站主对自己网站的SEO情况做出相应的判断与决策。

    近期我发现我page-view插件显示的访问数与实际cnzz的访问数差别较大。所以我决定开启apache服务器的Log功能,以方便我能够找到原因。

入门篇

简要设置

    开启Apache Log功能十分简单。这个功能默认是开启状态的。我们查看httpd.conf 里,

    LoadModule log_config_module modules/mod_log_config.so这一行开头是否有#,如果有则意味着被注释掉了,我们去掉#方可开启。

    apache log可以在两个地方设置,一个是在httpd.conf里、一个是在httpd-vhosts.conf中设置。具体内容都是一样的。如果在httpd.conf中设置,我们只需要找到相应的位置就可以修改了。大概是在260行左右的位置。如果是修改httpd-vhosts.conf文件,我们只要仿照官方给出的例子就可以了。将如下代码填写到你vhosts配置<VirtualHost *:80></VirtualHost> 中去。

    ErrorLog "logs/ijophy.com-error.log"
  CustomLog "logs/ijophy.com-access.log" common

    当然log保存的位置可以是多样的,为了简单明了,我们可以这样设置,把日志放到一个位置里去:

    ErrorLog "E:/logs/ijophy.com-error.log"

注意:

1、修改httpd.conf或httpd-vhosts.conf保存后,需要重启apache服务器

2、如果重启报错,需要查看log所在目录是否已经创建,apache的权限不够创建文件夹,需要我们手动创建文件夹。

log的格式设置

    打开刚刚生成的log,我们发现不免有点单调。所以我们就要加强log的内容类型。我们开始设置,以下设置是一个比较大众的方式。增加一行代码,再修改一样。改完之后是这样的。

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
CustomLog "D:/log/jophyblog/access.log" combined
 

过滤log文件的部分文件类型

    打开log我们会发现有许多jpg,js,png等文件出现在我们的log中,但是这样的文件对我们分析数据来说实在用处不大。所以为了节省资源,我们可以过滤一些文件,让他们不出现我们的log中。输入前三行后,在CustomLog最后 加上 env=!IMAG 。 而combined 还是common需要看你的具体需求。代码如下:

<FilesMatch "\.(ico|gif|jpg|png|bmp|swf|css|js)">
SetEnv IMAG 1
</FilesMatch>
CustomLog "D:/log/jophyblog/access.log" combined env=!IMAG

进阶篇

    我们仅仅单纯地这样设置,会出现单个log文件体积庞大,打开速度缓慢。分析起来也十分费力。所以我们采用一种更高级的方法,来保存我们的服务器日志log。于是我们设置Apache Log轮询来解决这个问题。Apache Log轮询可以让你的日志按时间进行有规律的安放。我查询了有关资料,发现一般涉及到Apache Log轮询的方式有两种。一种是利用apache的rotatelogs组件进行日志分割、另一种则是利用cronolog工具来实现这一功能。

rotatelogs

    今天我们主要讲解rotatelogs。其实rotatelogs在windows下有两种运行模式。一种是rotatelogs.exe ,一种是加载.so的形式。我不建议使用rotatelogs.exe,有许多问题发现。所以今天详细讲解windows下rotatelogs.so的运用。

    可能需要下载的有:

    1、根据你的apache版本下载mod_log_rotate.so模块。解压后将mod_log_rotate.so放到apache目录下的modules里

    2、如果你没有安装过vcredist_x86.exe。你需要下载并安装。

    3、在 httpd.conf 中加上

LoadModule log_rotate_module modules/mod_log_rotate.so

RotateLogs On #开启轮询日志

RotateLogsLocalTime On #用服务器时间,default 是用UTC 时间,必须开启!!!

RotateInterval 86400 #默认是86400秒 ,也就是一天,此行可不加

    4、在之前添加log代码的地方修改为CustomLog "D:/log/jophyblog/access_%Y_%m_%d.log" common  。之后会按access_2012_07_22.log生成文件。

性感的User-Agent

1、百度爬虫:Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)

2、feedsky:Mozilla 5.0 (compatible; Feedsky 1.0; http://www.feedsky.com)

3、谷歌爬虫:Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

4、DNSpod监控:DNSPod-monitor(http://www.dnspod.cn) 

4、reader:Feedfetcher-Google; (+http://www.google.com/feedfetcher.html;

转载请注明:卓非博客 » Apache Log的简要配置

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址