NGINX: 统计网站的PV、UV、独立IP

Nginx: PV、UV、独立IP

做网站的都知道,平常经常要查询下网站PV、UV等网站的访问数据,当然如果网站做了CDN的话,nginx本地的日志就没什么意义了,下面就对nginx网站的日志访问数据做下统计;

概念:

  • UV(Unique Visitor):独立访客,将每个独立上网电脑(以cookie为依据)视为一位访客,一天之内(00:00-24:00),访问您网站的访客数量。一天之内相同cookie的访问只被计算1次
  • PV(Page View):访问量,即页面浏览量或者点击量,用户每次对网站的访问均被记录1次。用户对同一页面的多次访问,访问量值累计
  • 统计独立IP:00:00-24:00内相同IP地址只被计算一次,做网站优化的朋友最关心这个

先声明下环境,此次运行的nginx版本1.7,后端Tomcat运行的是动态交互程序(需进行用户认证,如果是静态页面则抓不到cache值,$http_cookie是空值),就是这样;

nginx日志文件配置


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

http {

    include       mime.types;

    default_type  application/octet-stream;

    log_format  main  ‘$remote_addr - [$time_local]  "$request" ‘

                        ‘ - $status "User_Cookie:$guid" ‘;

 #User_Cookie为日志显示字符,$guid为变量,具体内容在下面定义,也可在日志格式里写入$http_cookie 显示完整的cookie内容<br>

    sendfile        on;

    keepalive_timeout  65;

        upstream backserver {

        ip_hash;

        server 1.1.2.2:8080;

        server  1.1.2.3:8080;

}

server {

        listen       80;

        server_name  localhost;

       #if ( $http_cookie ~* "(.*)$")  匹配所有内容

       if ( $http_cookie ~* "CSID=([A-Z0-9]*)"){

                set $guid $1;

        }    #只匹配CSID字符信息,此处为正则表达式<br>

        access_log  logs/host.access.log  main;

         location ~* ^(.*)$ {

             #limit_req zone=allips burst=1 nodelay;

 

             proxy_pass  http://backserver;

             proxy_set_header Host $host;

             proxy_set_header X-Real-IP $remote_addr;

             proxy_set_header REMOTE-HOST $remote_addr;

             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

             client_max_body_size 8m;

             }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

}

注:$http_cookie这个里面的值是一个一个cookie的值,中间以“;”分隔

日志输出格式


1

2

3

4

5

6

7

8

9

192.168.40.2 - [02/Nov/2016:15:44:35 +0800]  "GET /wcm/app/main/refresh.jsp?r=1478072325778 HTTP/1.1"  - 200 "User_Cookie:7F00000122A5597C46607B1C0A7EC016"

192.168.40.2 - [02/Nov/2016:15:44:35 +0800]  "GET /webpic/W0201611/W020161102/W020161102566715167404.jpg HTTP/1.1"  - 200 "User_Cookie:7F00000122A5597C46607B1C0A7EC016"

119.255.31.109 - [02/Nov/2016:15:44:36 +0800]  "GET /wcm/app/main/refresh.jsp?r=1478072510132 HTTP/1.1"  - 200 "User_Cookie:7F000001237921BE9237838AEC65704D"

119.255.31.109 - [02/Nov/2016:15:44:36 +0800]  "GET /wcm/app/message/message_query_service.jsp?READFLAG=0&MSGTYPES=1%2C2%2C3 HTTP/1.1"  - 200 "User_Cookie:7F000001237921BE9237838AEC65704D"

192.168.40.2 - [02/Nov/2016:15:44:37 +0800]  "GET /wcm/app/message/message_query_service.jsp?READFLAG=0&MSGTYPES=1%2C2%2C3 HTTP/1.1"  - 200 "User_Cookie:7F00000123D3BF2345115EAAC21F71E0"

192.168.40.2 - [02/Nov/2016:15:44:37 +0800]  "GET /wcm/app/message/message_query_service.jsp?READFLAG=0&MSGTYPES=1%2C2%2C3 HTTP/1.1"  - 200 "User_Cookie:7F00000123EF73896DF98EDA9950944E"

192.168.40.2 - [02/Nov/2016:15:44:37 +0800]  "GET /wcm/app/message/message_query_service.jsp?READFLAG=0&MSGTYPES=1%2C2%2C3 HTTP/1.1"  - 200 "User_Cookie:7F00000123FE0F9C397E1A8F0C4F044B"

192.168.40.2 - [02/Nov/2016:15:44:37 +0800]  "GET /wcm/app/main/refresh.jsp?r=1478072511427 HTTP/1.1"  - 200 "User_Cookie:7F00000123A465B7EA1DE0AF0AE671B7"

119.255.31.109 - [02/Nov/2016:15:44:38 +0800]  "GET /wcm/app/message/message_query_service.jsp?READFLAG=0&MSGTYPES=1%2C2%2C3 HTTP/1.1"  - 200 "User_Cookie:7F00000123D89B11302DF80AE773C900"

PV统计

可统计单个链接地址访问量:


1

[root@localhost logs]# grep index.shtml host.access.log | wc -l

总PV量:


1

[root@localhost logs]# awk ‘{print $6}‘ host.access.log | wc -l

独立IP 


1

[root@localhost logs]# awk ‘{print $1}‘ host.access.log | sort -r |uniq -c | wc -l

UV统计


1

[root@localhost logs]# awk ‘{print $10}‘ host.access.log | sort -r |uniq -c |wc -l

Cookie 测试页面

关于种cookie,可以使用下面的html代码,编辑,添加需要种的cookie


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

#index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gbk">

<meta http-equiv="Refresh" content="10"//为了方便测试,每10秒刷新一次页面

</head>

<body>

<h1>test.test.com域测试</h1>

下面列出了该域的cookie<br>

<p>

<script>

document.cookie="guid=A1UD8E5512451111111111"//种cookie,追加

document.cookie="city=beijing"//种cookie,追加

document.write(document.cookie); //列出已经存在的

</script>

</p>

</body>

</html>

原文地址:https://www.cnblogs.com/wmm123/p/10600178.html

时间: 2024-10-18 14:47:07

NGINX: 统计网站的PV、UV、独立IP的相关文章

日志分析统计PV UV 独立IP

pv一般都是统计指定页面的点击量,这里用首页来计算 grep "/index.php" /var/log/nginx/access.log | wc -l uv是统计指定页面上真是访问的用户,也就是说同一ip 不管点击多少次都算一个uv grep "/index.php" /var/log/nginx/access.log | awk '{print $1}'| sort | uniq | wc –l 独立ip是统计不管用户点击那个url只要有浏览,就算一个独立ip

网站流量分析指标-PV/UV/PR/IP

网站数据分析,经常会统计一个页面或者一个网站或者其他情况的PV/UV.下面简单说一下,这些量PV/UV/PR/IP. 1.PV PV(page view),即页面浏览量,或点击量.通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标. 用户对一个页面A进行一次刷新(按F5)或者一次通过网址访问,该页面A的pv就会增加1. 2.UV UV(unique visitor),即独立访客数.指访问某个站点或点击某条新闻的不同访客人数. 一日内访问某个网站或者网页的不同用户数量.  同一个用户对一个

日志统计中的PV UV IP

我们在统计访问日志的时候,经常要提及到三个概念:UV   PV   IP ,其中UV与IP的区别有时让初学者摸不着头脑,简单的聊一下这些概念: 一.Cookie.UV和IP的概念 要区别UV和IP,就要先说到Cookie.Cookie(或Cookies)指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密).Cookie中不但可以确认用户,还能包含计算机和浏览器的信息,所以一个用户用不同的浏览器登录或者用不同的计算机登录,都会得到不同的cookie信息,另

网站流量PV,UV,IP的含义

文章来源:http://lzj0470.iteye.com/blog/647453 1.什么是pv PV(page view),即页面浏览量,或点击量;通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标. 高手对pv的解释是,一个访问者在24小时(0点到24点)内到底看了你网站几个页面.这里需要强调:同一个人浏览你网站同一个页面,不重复计算pv量,点100次也算1次.说白了,pv就是一个访问者打开了你的几个页面. PV之于网站,就像收视率之于电视,从某种程度上已成为投资者衡量商业网站表现

网站计数PV UV IP Session 的简介

PV(Page View)访问量, 即页面浏览量或点击量,衡量网站用户访问的网页数量:在一定统计周期内用户每打开或刷新一个页面就记录1次,多次打开或刷新同一页面则浏览量累计.  UV(Unique Visitor)独立访客,统计1天内访问某站点的用户数(以cookie为依据);访问网站的一台电脑客户端为一个访客.可以理解成访问某网站的电脑的数量.网站判断来访电脑的身份是通过来访电脑的cookies实现的.如果更换了IP后但不清除cookies,再访问相同网站,该网站的统计中UV数是不变的.如果用

网站的PV UV IP

www.cnblogs.com/fanyong/p/3338283.html PV:PV 是Page Views的缩写,即页面浏览量,用户每一次对网站中的每个网页访问均被记录一次.注意,访客每刷新一次页面,pv就增加一次. UV:UV是Unique Visitor的缩写,即独立访客数.指访问某个站点的不同IP地址的人数.在同一天的00:00-24:00内,uv只记录第一次进入网站的具有独立IP的访问者, 在同一天内再次或多次访问该网站则不计数. IP:一个独立IP访问网页,IP就增加一次,同一个

网站的PV,UV,IP名词解释

PV:PV 是Page Views的缩写,即页面浏览量,用户每一次对网站中的每个网页访问均被记录一次.注意,访客每刷新一次页面,pv就增加一次. UV:UV是Unique Visitor的缩写,即独立访客数.指访问某个站点的不同IP地址的人数.在同一天的00:00-24:00内,uv只记录第一次进入网站的具有独立IP的访问者, 在同一天内再次或多次访问该网站则不计数. IP:一个独立IP访问网页,IP就增加一次,同一个IP多次访问该网站不计在内. 通过PV.UV和IP之间的数据对比关系,可以分析

一文解读PV/UV/VV/IP (转)

什么是PV? PV即Page View,网站浏览量,指页面浏览的次数,用以衡量网站用户访问的网页数量.用户每次打开一个页面便记录1次PV,多次打开同一页面则浏览量累计.一般来说,PV与来访者的数量成正比,但是PV并不直接决定页面的真实来访者数量,如同一个来访者通过不断的刷新页面,也可以制造出非常高的PV.具体的说,PV值就是所有访问者在24小时(0点到24点)内看了某个网站多少个页面或某个网页多少次.PV是指页面刷新的次数,每一次页面刷新,就算做一次PV流量. 度量方法就是从浏览器发出一个对网络

脚本分享:根据访问日志统计网站每日PV、总带宽、IP统计、url统计等

在平时的运维工作中,我们运维人员需要清楚自己网站每天的总访问量.总带宽.ip统计和url统计等. 虽然网站已经在服务商那里做了CDN加速,所以网站流量压力都在前方CDN层了 像每日PV,带宽,ip统计等数据也都可以在他们后台里查看到的. ------------------------------------------------------------------------------在这里,还是分享一个很早前用到过的shell统计脚本,可以结合crontab计划任务,每天给你的邮箱发送一