如何查看nginx状态?如何统计访问量?

2018-12-07 22:09:44

下面会介绍一些查询统计访问量等数据的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

本文出自 “蜗牛的嘲讽” 博客,请务必保留此出处

  • 2017-04-02 00:56:36

    php-fpm占用系统资源分析

    由上图分析,可以看出共有602个进程,其中有601个进程休眠了。这好像有点不对劲,内核进程也就80个左右,加上memcached, nginx, mysqld,也不会超出90个。除了这些,剩下的只有php-fpm管理的php-cgi,难道是…?

  • 2017-04-03 14:23:17

    Android Studio --“Cannot resolve symbol” 解决办法

    Android Studio 无法识别同一个 package 里的其他类,将其显示为红色,但是 compile 没有问题。鼠标放上去后显示 “Cannot resolve symbol XXX”,重启 Android Studio,重新 sync gradle,Clean build 都没有用。

  • 2017-04-06 14:59:13

    PHP配置文件详解

    PHP是一个简单易学,功能强大的语言,尤其在Web开发,开发效率高,方便快捷。研究一下php.ini了解PHP相关配置会有好处的,对PHP有更加深入的了解。

  • 2017-04-06 15:00:46

    怎么实时查看mysql当前连接数

    今天有一台mysql服务器突然连接数暴增,并且等待进程全部被锁...因为问题解决不当,导致被骂...OTL 总结:以后要快速定位错误,布置解决方案

  • 2017-04-06 15:07:57

    PHP-FPM不完全指南

    fpm启动后会先读php.ini,然后再读相应的conf配置文件,conf配置可以覆盖php.ini的配置。 启动fpm之后,会创建一个master进程,监听9000端口(可配置),master进程又会根据fpm.conf/www.conf去创建若干子进程,子进程用于处理实际的业务。

  • 2017-04-06 15:11:03

    浅析php-fpm 和 mysql 之间的关系详解

    php-fpm 和 mysql 之间的关系估计不做底层开发应用的是不会去考虑分析它们了,如果是的话我们来看一篇关于php-fpm 和 mysql 之间的关系的教程。