默认情况下,apache或者httpd日志记录是无状态的,一个真实访客的两次先后访问,在日志中除了ip和浏览器信息外,没有别的特征。有时候,很多人公用一个ip,甚至有时候取不到浏览器信息,比如对中国移动的手机们,默认就是这种状况。
怎么办呢?
我们可以让apache给客户端发送一个cookie,cookie内容是apache生成的一个用户唯一标记,例如:221.131.143.50.1260189290436924,表示ip 221.131.143.50上的一个访客,并把这个cookie内容打印到日志里,从而便于日后的统计和分析。
要做到这个并不麻烦:
1.找到LoadModule usertrack_module modules/mod_usertrack.so这一行,确保不被注释
2.然后打开/etc/httpd/conf/httpd.conf 配置文件,末尾追加如下内容,其中your_cookie_name可以替换成想要的cookie名称:
<IfModule usertrack_module>
CookieExpires "1 weeks"
CookieStyle Cookie
CookieName your_cookie_nameCookieTracking on
</IfModule>
3.找到apache或httpd日志配置部分,在里面加上配置,打印cookie信息:%{cookie}n,如:LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\” \”%V %v:%p %T\” %{cookie}n” combined。
4.重启apache或httpd,试着访问一下,通过谷歌浏览器访问,就可以看到responsed中带cookie了,下面zhulin是我设置的cookie名称