最近看了javaeye上面robbin的一篇文章,学习到了很多知识。

如何快速统计RoR网站的访问量

我的服务器是Apache+tomcat的配置,上面跑了几个网站。都是基于apache 虚拟主机配置的。

apache配置如下

Include conf/vhost_*.conf
然后每个虚拟主机对应一个配置文件

例如下面的(一些信息用???代替了,都是域名和姓名等个人信息)

<VirtualHost *:80>
    ServerAdmin ???@???.cn
    DocumentRoot /home/???/www
    ServerName www.???.org

    DirectoryIndex index.jsp index.htm

    ErrorLog logs/abc-error_log
    CustomLog "| /usr/sbin/rotatelogs /var/log/httpd/abc-access_%Y%m%d.log 86400" common
    <Location "/*.jsp">
         JkUriSet worker ajp13:localhost:8009
    </Location>
</VirtualHost>

这样配置后,就会在/var/log/httpd下面按照虚拟主机名字和日期,每天生成一个访问日志文件

统计每日动态请求处理总数

cat /var/log/httpd/abc-access_20081116.log |grep "200 "|wc -l

统计URL的访问频度

cat /var/log/httpd/abc-access_20081116.log |grep "200 "|awk '{print $7}'|sort|uniq -c

统计时间访问频度

cat /var/log/httpd/abc-access_20081116.log |grep "200 "|awk '{print $4}'|awk -F : '{print $2}'|sort|uniq -c

以上这些是基于CentOS+apache+tomcat实现的


[root@ict ~]# cat /var/log/httpd/esdinchina-access_20081117.log |grep "200 "|awk '{print $4}'|awk -F : '{print $2}'|sort|uniq -c