统计Nginx访问量

转载自:统计Nginx访问量 - 简书

叙述

PV(Page View):即页面浏览量或者点击量,用户每一次对网站中每个页面访问均记录1个PV。用户对同一页面的多次访问,访问量累积。

UV(Unique Visitor):指通过互联网浏览这个网页的人,电脑称为一个访客、手机也称为一个访客,一天之内相同的客户端只能被计算一次。

IP(Internet Protocol):指独立IP访问站点的IP总数,一天内相同IP只能算一次。

VV(Visit View):指所有访客一天内访问网站的次数,当访客完成所有浏览并最终关闭网站的所有页面时变完成了一次访问,同一访客一天内可能有多次访问行为,访问次数累积。

解决方案

Nginx的配置文件

access.log

access.log文件里面的$1、$2...对应于nginx配置文件里面的$remote_addr、$remote_user...等

查看各个访问量

1.根据访问IP统计UV

awk '{print $1}'  /var/log/nginx/access.log|sort | uniq -c |wc -l

2.统计访问URL统计PV

awk '{print $7}' /var/log/nginx/access.log|wc -l

3.查询访问最频繁的URL

awk '{print $7}' /var/log/nginx/access.log|sort | uniq -c |sort -n -k 1 -r|more

4.查询访问最频繁的IP

awk '{print $1}' /var/log/nginx/access.log|sort | uniq -c |sort -n -k 1 -r|more

5.根据时间段统计查看日志

cat  /var/log/nginx/access.log| sed -n '/14\/Mar\/2017:21/,/14\/Mar\/2017:22/p'|more

针对每天的访问信息写一个脚本,并将统计信息输出到/pv.html文件里面,之保留30天的信息。方便直接浏览此页面查看,但要限制特定IP才能访问此页面,其他IP的403!

year=`date +%Y`  

month=`date +%m`

datedate=`date +%F`

date=`date +%Y%m%d`

pv=`awk '{print $7}' /xx/logs/nginx/xxx/"$year"/"$month"/"$datedate"-access.log | wc -l`

ip=`awk '{print $1}' /xx/logs/nginx/xxx/"$year"/"$month"/"$datedate"-access.log | sort -n | uniq -c | wc -l`

echo -e "\n$date Pv is $pv;; $date Ip is $ip.." >> /xx/xxx/pv.htm l sort -rn /xx/xxx/pv.html | sed -i '31d' /xx/xxx/pv.html | sort -r

此外还要修改nginx配置文件

location = /pv.html {

allow  xxx.xxx.xxx.xxx;

deny allow;

}
nginx -r

dervice nginx reload

最后,将pv.sh加入定时任务

crontab -e

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值