统计网页的访问量

网站最粗粒度的统计就是PV(Page View)、UV(Unique Visitor)和独立IP访问量。其中PV就是某个特定页面的请求数量,UV则是独立访客数量,一般依赖于cookie中的唯一标识来统计,而独立IP则是统计单位时间内不重复的访客IP地址数量。

这三者的统计数据源一般就是web server的访问日志。对于使用nginx驱动的web站点来说,访问日志依赖于log_formataccess_log这两个配置项,而log_format中的$remote_addr即为客户端IP地址。如果nginx处在反向代理之后,则使用$http_x_forwarded_for来记录客户端IP地址。下面是一个配置示范:

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';
access_log  /var/logs/restartai.access.log  main;

比如我们要统计/about这个路径(页面)的PV,则可以通过一个简单的文本过滤来实现:

cat /var/logs/restartai.access.log | grep "/about" | wc -l

如果想要统计某一天的访问量,则再加上一个日期过滤:

cat /var/logs/restartai.access.log | grep "25/Sep/2018" | grep "/about" | wc -l

如果要统计独立IP访问量,就要做一点稍微复杂的字符串操作,将第一列$remote_addr取出来,再进行去重统计:

cat /var/logs/restartai.access.log | grep "25/Sep/2018" | grep "/about" | cut -d ' ' -f 1 | sort | uniq | wc -l

发表评论

电子邮件地址不会被公开。 必填项已用*标注