微服务系列文章 之 Nginx服务状态监控的方法

在Nginx的插件模块中有一个模块stub_status可以监控Nginx的一些状态信息,默认安装可能没有这个模块,手动编译的时候加一下即可。

1. 模块安装

先使用命令查看是否已经安装这个模块:

root@ihxb123Z nginx# ./nginx -V (V大写会显示版本号和模块等信息、v小写仅显示版本信息。

如果已经安装,会在显示的信息中包含 --with-http_stub_status_module信息。如果没有此模块,需要重新安装,编译命令如下:

|---|----------------------------------------------|
| | ./configure --with-http_stub_status_module |

2. Nginx配置

安装后只要修改nginx配置即可,配置如下:

|---|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| | location /hxbcdnstatus { ``stub_status on; ``access_log off; ``  allow 127.0.0.1; ``deny all; ``#auth_basic "NginxStatus"; ``#auth_basic_user_file conf/nginxstaus; } |

此处默认只有本地访问,如果远程可以查看需要加相关的IP或者干脆去掉Deny all即可。加密文件可以使用#htpasswd -c /usr/nginx/conf hxb 命令来创建。配置完成后需要重启Nginx服务。

状态配置只能是针对某个Nginx服务。目前Nginx还无法做到针对单个站点进行监控。

3. 状态查看

配置完成后在浏览器中输入http://127.0.0.1/hxbcdnstatus查看,显示信息如下:

|---|-----------------------------------------------------------------------------------------------------------------------|
| | Active connections: 100 server accepts handled requests ``1075 1064 6253 Reading: 0 Writing: 5 Waiting: 95 |

4. 参数说明

active connections -- 活跃的连接数量

server accepts handled requests --- 总共处理了107520387个连接 , 成功创建107497834次握手, 总共处理了639121056个请求

每个连接有三种状态waiting、reading、writing

reading ---读取客户端的Header信息数.这个操作只是读取头部信息,读取完后马上进入writing状态,因此时间很短。

writing --- 响应数据到客户端的Header信息数.这个操作不仅读取头部,还要等待服务响应,因此时间比较长。

waiting --- 开启keep-alive后等候下一次请求指令的驻留连接.

正常情况下waiting数量是比较多的,并不能说明性能差。反而如果reading+writing数量比较多说明服务并发有问题。

补充:

查看Nginx并发进程数:ps -ef | grep nginx | wc -l

查看Web服务器TCP连接状态:netstat -n | awk '/^tcp/ {++S$NF} END {for(a in S) print a, Sa}'

相关推荐
利威尔xu2 小时前
Go IM 源码实战(14):本地缓存快 3000 倍,失效却难 10 倍
后端·缓存·微服务·面试·golang
ZhengEnCi3 小时前
GPT-6 Astra 爆改 Qwen 权重真有那么神吗:权重空间编程 0.016% 参数的真相
算法·架构
利威尔xu4 小时前
Go IM 源码实战(13):30 个会话只有 2 个红点,未读数错在三条路径
redis·后端·微服务·面试·golang
码流子5 小时前
移动收费怎么做?手持终端+App+收费中心的架构实践
java·开发语言·架构
梦曦i5 小时前
uni-app x下自研架构的工程化突围
前端·架构·uni-app x
这个DBA有点耶6 小时前
连拿六年第一后宣布出海:国产数据库凭什么敢撕掉“平替”的标签?
数据库·人工智能·架构
高晶6 小时前
SPMI 控制器 RTL 设计与验证新手入门
设计模式·程序员·架构
解构Shopify8 小时前
专题 11 | 四维工程质量网:CWV、k6 压测、a11y 与视觉回归
架构
frjc8 小时前
Spring AI 高级实战:ChatMemory、Tool Calling 与 MCP 架构解析
人工智能·spring·架构