下面会介绍一些查询统计访问量等数据的shell语法,可以学习一下。
nginx是个什么玩意儿本文不再多说,直奔主题!
1. 如何查看nginx的状态?
stub_status 模块介绍
stub_status 模块主要用于查看Nginx的一些状态信息.
本模块默认是不会编译进Nginx的,如果你要使用该模块,则要在编译安装Nginx时指定:
./configure–with-http_stub_status_module
一、查看已安装的 Nginx 是否包含 stub_status 模块
#/usr/local/nginx/sbin/nginx-V
如果包含 stub_status 模块,那么就可以进行下面的步骤了:
二、修改 Nginx 配置文件
在nginx.conf的server块中添加如下代码
location/nginx_status{#Turnonnginxstatsstub_statuson;#Idonotneedlogsforstatsaccess_logoff;#Security:Onlyallowaccessfrom192.168.1.100IP##allow192.168.1.100;#Sendrestoftheworldto/dev/null##denyall;}
这段代码是加在默认的server里的,假设默认server的配置为
listen127.0.0.1:80;server_name127.0.0.1;
那么访问nginx的状态,就可以通过 curl 127.0.0.1/nginx_status访问了
返回结果类似于:
Activeconnections:1serveracceptshandledrequests6556551985Reading:0Writing:1Waiting:0
三、重启 Nginx
检测配置配置是否有误#/usr/local/nginx/sbin/nginx-t重启#/usr/local/nginx/sbin/nginx-sreload
四、相关数据说明
Active connections: 对后端发起的活动连接数.
Server accepts handled requests: Nginx总共处理了655个连接,成功创建655次握手(证明中间没有失败的),总共处理了1985个请求.
Reading: Nginx 读取到客户端的Header信息数.
Writing: Nginx 返回给客户端的Header信息数.
Waiting: 开启keep-alive的情况下,这个值等于 active – (reading + writing),意思就是Nginx已经处理完成,正在等候下一次请求指令的驻留连接.
所以,在访问效率高,请求很快被处理完毕的情况下,Waiting数比较多是正常的.如果reading +writing数较多,则说明并发访问量非常大,正在处理过程中.
2.访问量统计
1.根据访问IP统计UV
awk '{print $1}' access.log|sort | uniq -c |wc -l
2.统计访问URL统计PV
awk '{print $7}' access.log|wc -l
3.查询访问最频繁的URL
awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more
4.查询访问最频繁的IP
awk '{print $1}' access.log|sort | uniq -c |sort -n -k 1 -r|more
5.根据时间段统计查看日志
cat access.log| sed -n '/14\/Mar\/2015:21/,/14\/Mar\/2015:22/p'|more
本文出自 “蜗牛的嘲讽” 博客,请务必保留此出处