写在前面的话

在 nginx 中,有些时候我们希望能够知道目前到底有多少个客户端连接到了我们的网站。我们希望有这样一个页面来专门统计显示这些情况。这个需求在 nginx 中是可以实现的,我们可以通过简单的配置来实现。

状态统计

nginx 自带模块中包含了 http_stub_status_module 模块,我们在之前的编译中也将其编译到了程序中,所以我们可以直接使用它:

在 vhosts 中新建:nginx-status.conf

server {
listen 10002;
server_name localhost; location = /status {
stub_status on;
access_log off;
} location / {
return 403;
}
}

此时我们重载配置访问:

简单的说明:

Active connections:活跃的连接数量

server accepts handled requests:总共处理连接 / 成功握手次数 / 总共处理请求

Reading / Writing / Waiting:正在读取客户端连接数 / 响应数据到客户端的量 / 驻留连接 = Active - Reading - Writing

我们做个测试,在其它两台机器上面跑一个访问的循环:

while true; do curl http://192.168.100.111:10002 & sleep 1; done

让他一秒访问以下我们的 nginx,然后查看状态:

可以看到当前两个活跃连接,请求不断增加。

然后我们 stop nginx 后再启动查看:

发现之前的统计都被重置了,所以我们可以给出,这个统计是 nginx 启动之后的统计。当然 reload 不会。

状态码统计

处理统计多少人连接,处理了多少请求,我们也希望能够看懂每种请求状态码的出现的次数。

我们需要用到另外一个第三方模块:ngx_http_status_code_counter

https://github.com/kennon/ngx_http_status_code_counter

动态添加该模块的操作我们就不再做过多说明,因为前面已经介绍过很多次了。

编译替换完成以后,接下来就是配置,我们在原来 status 的配置上增加即可:nginx-status.conf

server {
listen 10002;
server_name localhost; location = /status {
stub_status on;
access_log off;
} location = /status-codes {
show_status_code_count on;
}
location / {
return 403;
}
}

此时我们访问测试:

值得注意的是,该统计在 nginx 重启或者 reload 以后都将重置为 0。

小结

本节的两个点都是用于帮助我们了解 nginx 使用状态的,你不能说它有多有用,但是确实能够帮到我们。

【07】Nginx:状态统计 / 状态码统计的更多相关文章

  1. Nginx code 常用状态码学习小结

    最近了解下Nginx的Code状态码,在此简单总结下.一个http请求处理流程: 一个普通的http请求处理流程,如上图所示:A -> client端发起请求给nginxB -> ngin ...

  2. Nginx 高级配置-状态页配置

    Nginx 高级配置-状态页配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 建议将nginx的监控状态的值通过zabbix或者Open-Falcon之类的监控工具来监控状态,并 ...

  3. Nginx模块之———— RTMP模块 统计某频道在线观看流的客户数

    获得订阅者人数,可以方便地显示观看流的客户数. 查看已经安装好的模块 /usr/local/nginx/sbin/nginx -V 安装从源编译Nginx和Nginx-RTMP所需的工具 sudo a ...

  4. nginx启用status状态页

    nginx和php-fpm一样都内建了一个状态页,通过查看状态页信息可以连接到nginx服务负载情况,还可以利用状态页信息配zabbix监控,这里先介绍nginx的status状态页的使用. stau ...

  5. 监控 HTTP 服务器的状态(测试返回码)shell脚本

    #!/bin/bash # 监控 HTTP 服务器的状态(测试返回码) # 设置变量,url为你需要检测的目标网站的网址(IP 或域名),比如百度 url=http://http://183.232. ...

  6. 与众不同 windows phone (23) - Device(设备)之硬件状态, 系统状态, 网络状态

    原文:与众不同 windows phone (23) - Device(设备)之硬件状态, 系统状态, 网络状态 [索引页][源码下载] 与众不同 windows phone (23) - Devic ...

  7. Java线程池状态和状态切换

    摘要 介绍线程池的五种状态RUNNING.SHUTDOWN.STOP.TIDYING和TERMINATED,并简述五种状态之间的切换.   在类ThreadPoolExecutor中定义了一个成员变量 ...

  8. Activity的保存状态和状态恢复

    Activity的保存状态和状态恢复 当系统内存不足时,系统会强制结束一些不可见的Activity以节省内存资源.在某些情况下,当被强制结束的Activity再次显示时会出现一些问题. 例如:一个AP ...

  9. linux/centos下安装nginx(rpm安装和源码安装)详细步骤

    Centos下安装nginx rpm包                                                                                 ...

随机推荐

  1. Wpf,Unity6

    <?xml version="1.0" encoding="utf-8"?><packages> <package id=&quo ...

  2. Java 数学操作类

    数学操作类 Math类 数学计算操作类 类属性值 Math.E ^ Math.PI 圆周率 类方法 Math类中,一切方法都是 static 型,因为Math类中没有普通属性. round() 方法 ...

  3. DS12C887实时时钟

    实物图 引脚定义 GND. VCC:直流电源,其中VCC接+5V输入,GND接地,当VCC输入为+5V时,用户可以访问DS12C887内RAM中的数据,并可对其进行读.写操作:当VCC的输入小于+4. ...

  4. 关于 Android 状态栏的适配总结

    1.要求状态栏透明,我们的内容布局延伸到系统状态栏,就是人们口中说的沉浸式状态栏: Android 5.0 及其以后版本:设置属性 View.SYSTEM_UI_FLAG_LAYOUT_FULLSCR ...

  5. dijit/_WidgetBase

    英文地址:http://dojotoolkit.org/reference-guide/1.10/dijit/_WidgetBase.html 介绍 dijit/_WidgetBase是Dijit包中 ...

  6. nginx在centos下的安装

    第一步:打开浏览器下载,再上传到centOS系统中 http://nginx.org/download/ 或者在 centOS系统输入: wget http://nginx.org/download/ ...

  7. CUDA -- 规约求矩阵的行和

    求矩阵每行的和? 可以把每行放入一个不同线程块,这样行与行之间进行粗粒度的并行.而对于每行,其对应的线程块中分配n个线程(对应行宽),使用共享存储器,让每个线程从显存中读取一个数至shared mem ...

  8. 1.Python爬虫入门_urllib

    #2019-11-22 import urllib.request #Pthon自带的网络连接库 import gzip #解压缩库 #程序入口 if __name__=='__main__': #u ...

  9. conda基础命令

    1.首先在所在系统中安装Anaconda.可以打开命令行输入conda -V检验是否安装以及当前conda的版本. 2.conda常用的命令. 1)conda list 查看安装了哪些包. 2)con ...

  10. SpringBoot定时器任务

    Spring Boot使用@Scheduled定时器任务   摘要: Spring Boot之使用@Scheduled定时器任务 假设我们已经搭建好了一个基于Spring Boot项目,首先我们要在A ...