【07】Nginx:状态统计 / 状态码统计
写在前面的话
在 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
动态添加该模块的操作我们就不再做过多说明,因为前面已经介绍过很多次了。
编译替换完成以后,接下来就是配置,我们在原来 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:状态统计 / 状态码统计的更多相关文章
- Nginx code 常用状态码学习小结
最近了解下Nginx的Code状态码,在此简单总结下.一个http请求处理流程: 一个普通的http请求处理流程,如上图所示:A -> client端发起请求给nginxB -> ngin ...
- Nginx 高级配置-状态页配置
Nginx 高级配置-状态页配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 建议将nginx的监控状态的值通过zabbix或者Open-Falcon之类的监控工具来监控状态,并 ...
- Nginx模块之———— RTMP模块 统计某频道在线观看流的客户数
获得订阅者人数,可以方便地显示观看流的客户数. 查看已经安装好的模块 /usr/local/nginx/sbin/nginx -V 安装从源编译Nginx和Nginx-RTMP所需的工具 sudo a ...
- nginx启用status状态页
nginx和php-fpm一样都内建了一个状态页,通过查看状态页信息可以连接到nginx服务负载情况,还可以利用状态页信息配zabbix监控,这里先介绍nginx的status状态页的使用. stau ...
- 监控 HTTP 服务器的状态(测试返回码)shell脚本
#!/bin/bash # 监控 HTTP 服务器的状态(测试返回码) # 设置变量,url为你需要检测的目标网站的网址(IP 或域名),比如百度 url=http://http://183.232. ...
- 与众不同 windows phone (23) - Device(设备)之硬件状态, 系统状态, 网络状态
原文:与众不同 windows phone (23) - Device(设备)之硬件状态, 系统状态, 网络状态 [索引页][源码下载] 与众不同 windows phone (23) - Devic ...
- Java线程池状态和状态切换
摘要 介绍线程池的五种状态RUNNING.SHUTDOWN.STOP.TIDYING和TERMINATED,并简述五种状态之间的切换. 在类ThreadPoolExecutor中定义了一个成员变量 ...
- Activity的保存状态和状态恢复
Activity的保存状态和状态恢复 当系统内存不足时,系统会强制结束一些不可见的Activity以节省内存资源.在某些情况下,当被强制结束的Activity再次显示时会出现一些问题. 例如:一个AP ...
- linux/centos下安装nginx(rpm安装和源码安装)详细步骤
Centos下安装nginx rpm包 ...
随机推荐
- Web前端——Html常用标签及属性
html 常用的标题等标签就不记录了,只记录一下比较少见的标签以及属性 表格 table td 单元格 tr 表的行 th 表头 td或th可以下面的两个属性达到跨行或跨列 表格跨行 rowspan ...
- 配置文件_自定义section标签获取数据
前言:为了节约时间,先只粘贴关键代码: 1-添加section标签,name为自定义标签名称,type为:命名空间+类型,程序集名称 <section name="watchModel ...
- 【踩坑系列】VS2019提示 ' the package could not be found in c\users\username\nuget\packages\. '
解决步骤 1.删除对应项目下的 obj 文件夹 2.重新生成该项目
- 多线程学习二:线程池 ExecutorService
创建线程池的2种方式: 使用线程池方式1--Runnable接口: 通常,线程池都是通过线程池工厂创建,再调用线程池中的方法获取线程,再通过线程去执行任务方法. Executors:线程池创建工厂类: ...
- python web框架Django——ORM
ORM简介 MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库 ORM是“对象-关系-映射”的简称 ...
- hook declined to update refs/heads/dev
提交一个项目,push的时候,报错: warning: Large files detected. remote: error: File TaodangpuAuction/TaodangpuAuct ...
- layer重复弹出(layui弹层同时存在多个)的解决方法
layer.open() 同时存在多个;解决 layui 弹层 layer 同时存在多个页面层(iframe)的问题 这个问题其实是疏忽了一些 基础参数(仔细看文档,仔细看文档,仔细看文档) 一.ty ...
- python爬虫(3)——用户和IP代理池、抓包分析、异步请求数据、腾讯视频评论爬虫
用户代理池 用户代理池就是将不同的用户代理组建成为一个池子,随后随机调用. 作用:每次访问代表使用的浏览器不一样 import urllib.request import re import rand ...
- 7. Go语言—时间模块
一.时间模块 1. 统计程序执行时间 package main import ( "time" "fmt" ) func test() { time.Sleep ...
- Html学习之四(页面布局)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...