写在前面的话

在 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. Serlvet、JSP和JSTL的联系

    没有无缘无故的爱和恨,没有无缘无故的编程 前言: 想这世间,没有无缘无故的爱,也没有无缘无故的恨,一切都有有原因的,我想编程亦是如此,技术时常更新,程序员时常学习,随着时间的推移,程序员发际线的增高, ...

  2. oracle学习笔记(十七) PL/SQL高级应用

    PL/SQL高级应用 动态SQL 在PL/SQL中,不能直接执行DDL(create,alter,drop),得使用动态SQL,当然,除了DDL,动态SQL也可以执行DML(select,insert ...

  3. Docker开启Remote API 访问 2375端口

    Docker常见端口 我看到的常见docker端口包括: 2375:未加密的docker socket,远程root无密码访问主机2376:tls加密套接字,很可能这是您的CI服务器4243端口作为h ...

  4. 零零总总遇到过的CSS 样式

    1:添加弹出框阴影 2:禁止文本域缩放 3:直接使用CSS 完成文本内容大小写(针对英文) 4: 文本框中的占位符 5:让table每列一样高 6:不使用js 让内容换行 word-break 7:曾 ...

  5. 备战双十一,腾讯WeTest有高招——小程序质量优化必读

    WeTest 导读 2018年双十一战场小程序购物通道表现不俗,已逐渐成为各大品牌方角逐的新战场.数据显示,截止目前95%的电商平台都已经上线了小程序.除了电商企业外,许多传统线下商家也开始重视小程序 ...

  6. MIME格式解析

    - 邮件例子 一个MIME格式的邮件例子如下: Return-Path: <mlemos@acm.org> To: Manuel Lemos <mlemos@linux.local& ...

  7. Python的包package的导入与被导入(包的类和方法的导入,__init__()怎么写)

    包package的导入与被导入: 参考一下: https://blog.csdn.net/guowujun321/article/details/80764468 1.文件目录: | |--  A/ ...

  8. vs code切换中英文界面

    1. 在vs code的应用扩展中搜索这个插件: Chinese (Simplified) Language Pack for Visual Studio Code 这个插件,安装完毕重新加载即可生效 ...

  9. Mysql 连接提示 Client does not support authentication protocol requested by server 客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端

    由于查阅了很多百度文档发现很多方法比较复杂,所以写个备忘: 首先,进入MySQL 8.0Command Line Client -Unicode,输入密码,登录进去. 然后,在命令行输入:ALTER ...

  10. 11. ==和equals方法 & 常量池

    一.使用==来判断两个变量是否相等 1. 如果两个变量是基本类型变量,且都是数值类型,则只要两个变量的值相等,就将返回true 2. 如果两个变量是引用类型变量,则只有它们指向同一个对象时,才返回tr ...