apache上面的,
mod_uid : http://www.lexa.ru/programs/mod-uid-eng.html
mod_uid : http://www.lexa.ru/programs/mod-uid-eng.html
mod_usertrack :
http://httpd.apache.org/docs/2.0/mod/mod_usertrack.html
Apache本身带有一个
mod_usertrack模块:其原理就是在用户首次来到当前网站的时候给用户种下一个唯一的cookie(较长时间过期),这个cookie是用户首次来当前网站的IP地址加上一个随机字符串组成的。
1.2.3.4 ... 1.2.3.4.1111 用户1
1.2.3.4 ... 1.2.3.4.2222 用户2
1.2.3.4 ... 1.2.3.4.3333 用户3
第2天,即使用户换了IP,
1.2.1.2 ... 1.2.3.4.1111 用户1
1.2.3.4 ... 1.2.3.4.1111 用户1
1.2.3.4 ... 1.2.3.4.2222 用户2
1.2.3.4 ... 1.2.3.4.3333 用户3
第2天,即使用户换了IP,
1.2.1.2 ... 1.2.3.4.1111 用户1
具体的配置方法如下:
准备:我的apache早期编译时并没有加载--enable-module=usertrack ,我这人也比较懒,重新解压一个httpd源码包,找到 /httpd2.2.11/modules/metadata/mod_usertrack.c,然后执行/opt/apache/bin/apxs -c -i -a /httpd-2.2.11/modules/metadata/mod_usertrack.c
基本OK。
1 启用mod_usertrack模块:修改httpd.conf文件
LoadModule usertrack_module libexec/mod_usertrack.so
AddModule mod_usertrack.c
2 针对一个域名启用CookieTracking,我自己的环境是虚拟主机。
将以下四项添加到对应的<VirtualHost *:80>中即可。httpd-vhosts.conf文件
CookieTracking on
CookieDomain .chedong.com
CookieExpires "10 years"
CookieStyle Cookie
CookieTracking on
CookieDomain .chedong.com
CookieExpires "10 years"
CookieStyle Cookie
3 mod_usertrack的记录: 在日志最后增加%{cookie}n字段 修改文件httpd.conf
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{cookie}n" combined
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{cookie}n" combined
启用mod_usertrack后的日志样例:
202.160.180.61 - - [30/Nov/2005:17:38:44 +0800] "GET /phpMan.php/man/HTML::AsSubs/3pm HTTP/1.0" 200 4911 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)" 202.160.180.61.227021133343524377
218.249.22.70 - - [30/Nov/2005:17:38:45 +0800] "GET /referer.js HTTP/1.0" 200 26254 "http://bietile.bokee.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" 218.249.22.70.11531133343525235
202.160.180.61 - - [30/Nov/2005:17:38:48 +0800] "GET /phpMan.php/man/File::CheckTree/3pm HTTP/1.0" 200 4654 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)" 202.160.180.61.222451133343528428
202.160.180.61 - - [30/Nov/2005:17:38:44 +0800] "GET /phpMan.php/man/HTML::AsSubs/3pm HTTP/1.0" 200 4911 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)" 202.160.180.61.227021133343524377
218.249.22.70 - - [30/Nov/2005:17:38:45 +0800] "GET /referer.js HTTP/1.0" 200 26254 "http://bietile.bokee.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" 218.249.22.70.11531133343525235
202.160.180.61 - - [30/Nov/2005:17:38:48 +0800] "GET /phpMan.php/man/File::CheckTree/3pm HTTP/1.0" 200 4654 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)" 202.160.180.61.222451133343528428
然后在StatViz中设置改用最后一个Cookie字段作为唯一用户的跟踪,这样的独立用户会话统计就更准确了:
; Column 0 is the first column -- by default this is the "combined" apache log format, but of course you can customize
LogSessIDColumn=10
...
; Column 0 is the first column -- by default this is the "combined" apache log format, but of course you can customize
LogSessIDColumn=10
...
附:设置了CookieTracking后的页面http header的变化 wget -s http://www.chedong.com/
HTTP/1.1 200 OK
Date: Wed, 30 Nov 2005 09:40:16 GMT
Server: Apache/1.3.34 (Unix) mod_gzip/1.3.26.1a PHP/4.4.0
Set-Cookie2: Apache=211.152.33.116.161891133343616145; path=/; max-age=36000; domain=.chedong.com; version=1
Cache-Control: max-age=7200
Expires: Wed, 30 Nov 2005 10:40:16 GMT
X-Powered-By: PHP/4.4.0
Last-Modified: Wed, 30 Nov 2005 09:40:16 GMT
Connection: close
Content-Type: text/html
HTTP/1.1 200 OK
Date: Wed, 30 Nov 2005 09:40:16 GMT
Server: Apache/1.3.34 (Unix) mod_gzip/1.3.26.1a PHP/4.4.0
Set-Cookie2: Apache=211.152.33.116.161891133343616145; path=/; max-age=36000; domain=.chedong.com; version=1
Cache-Control: max-age=7200
Expires: Wed, 30 Nov 2005 10:40:16 GMT
X-Powered-By: PHP/4.4.0
Last-Modified: Wed, 30 Nov 2005 09:40:16 GMT
Connection: close
Content-Type: text/html
....
有了这个cookie,对于跟踪用户的粘度非常有用,可以知道用户什么时候首次来访,每个月之间用户的重叠度,结合一些其他特征:比如referer,还可以跟踪特定一批用户来到当前网站后的流失速度等……
2005-12-01 后记
hedong今天忽然跟我说:发现按照我的配置Cookie的值不稳定,我检查了一下:
tail -f chedong_access_log.20051201 |grep 218.249.9.2(这个是我的IP)
然后访问www.chedong.com并浏览,发现日志后面的cookie值果然是变化的……
hedong今天忽然跟我说:发现按照我的配置Cookie的值不稳定,我检查了一下:
tail -f chedong_access_log.20051201 |grep 218.249.9.2(这个是我的IP)
然后访问www.chedong.com并浏览,发现日志后面的cookie值果然是变化的……
重新试了一下
CookieStyle Cookie
结果就好多了:
HTTP/1.1 200 OK
Date: Thu, 01 Dec 2005 07:58:35 GMT
Server: Apache/1.3.34 (Unix) mod_gzip/1.3.26.1a PHP/4.4.0
Set-Cookie: chedong=211.152.33.116.216801133423915949; path=/; max-age=315360000; domain=.chedong.com
Cache-Control: max-age=7200
Expires: Thu, 01 Dec 2005 08:58:35 GMT
X-Powered-By: PHP/4.4.0
Last-Modified: Thu, 01 Dec 2005 07:58:35 GMT
Connection: close
Content-Type: text/html
结果就好多了:
HTTP/1.1 200 OK
Date: Thu, 01 Dec 2005 07:58:35 GMT
Server: Apache/1.3.34 (Unix) mod_gzip/1.3.26.1a PHP/4.4.0
Set-Cookie: chedong=211.152.33.116.216801133423915949; path=/; max-age=315360000; domain=.chedong.com
Cache-Control: max-age=7200
Expires: Thu, 01 Dec 2005 08:58:35 GMT
X-Powered-By: PHP/4.4.0
Last-Modified: Thu, 01 Dec 2005 07:58:35 GMT
Connection: close
Content-Type: text/html
未完待续
转载于:https://blog.51cto.com/5iwww/284058