让apache产生cookie并记录到日志

默认情况下,apache日志记录是无状态的,一个真实访客的两次先后访问,在日志中除了ip和浏览器信息外,没有别的特征。有时候,很多人公用一个ip,甚至有时候取不到浏览器信息,比如对中国移动的手机们,默认就是这种状况。

怎么办呢?

我们可以让apache给客户端发送一个cookie,cookie内容是apache生成的一个用户唯一标记,例如:221.131.143.50.1260189290436924,表示ip 221.131.143.50上的一个访客,并把这个cookie内容打印到日志里,从而便于日后的统计和分析。

要做到这个并不麻烦:

  1. 打开httpd.conf,保证这一行没有被注释:LoadModule usertrack_module modules/mod_usertrack.so
  2. 在后面加一组配置:

<IfModule usertrack_module>
CookieExpires “1 weeks”
CookieStyle RFC2965
CookieName your_cookie_name

CookieTracking on
</IfModule>

3.找到apache日志配置部分,在里面加上配置,打印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,试着访问一下,现在就应该可以在combined所在的日志文件中看到cookie信息了。


apache版本:apache2.2

需要修改的文件:apache2.conf  sites-enabled/0000-default

在apache2.conf 中,添加如下如下语句:

LoadModule usertrack_module /usr/lib/apache2/modules/mod_usertrack.so

在sites-enabled/0000-default中,添加如下语句:

                CookieName uniqueUID
                CookieExpires "1 years"
                CookieStyle Cookie
                CookieTracking on

如此就完成了cookie的记录。


你可能感兴趣的:(让apache产生cookie并记录到日志)