nginx作为目前最流行的web服务器之一,在许多生产环境都能看到他的踪影。有时候,我们需要统计nginx的连接配置,本文主要分享一下如何统计nginx的连接数。
使用netstat统计连接数,这种是将master和worker一起统计了
netstat -antp|grep nginx|wc -l
如果只统计worker的话,可以用以下命令
netstat -antp|grep "nginx: worker"|wc -l
比较高大上的写法是
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
CLOSE_WAIT 16
ESTABLISHED 343
TIME_WAIT 11
其中,参数分别表示为等待关闭的,已连接的,等待释放的
使用zabbix、普罗米修斯等监控也可以随时监控到nginx的连接状况
nginx自带了模块,通过配置可以查看实时的连接情况,具体操作如下:
首先查看nginx是否安装了http_stub_status_module模块
nginx -V
任意找一个http server段,配置以下语句
location /status {
stub_status on;
}
检查语法
nginx -t
浏览器访问http://IP:Port/status,输出如下
Active connections:当前 Nginx 正处理的活动连接数(2),也就是当前的并发连接数
server accepts handled requests:总共处理了3550个连接,成功创建3550次握手,总共处理了5901个请求.
Reading:nginx 读取到客户端的 Header 信息数.
Writing:nginx 返回给客户端的 Header 信息数.
Waiting:开启 keep-alive 的情况下,这个值等于active-(reading+writing),意思就是Nginx已经处理完正在等候下一次请求指令的驻留连接.