Nginx的ngx_http_stub_status_module提供能够获取Nginx自上次启动以来的工作状态的功能。如果需要启用此功能的话,需要在编译的过程中添加如下参数:“–with-http_stub_status_module”,该模块在需要放到server里面的。
1、修改nginx.conf的文件例如:
server {
listen 80;
server_name 192.168.1.100;
root /home/www/;
index index.html index.htm ;
access_log off;
location ~* .(ftpquota|htaccess|asp|aspx|jsp|asa|mdb)$ {
deny all;
}
location ~ ^/Nginxstatus/ {
stub_status on;
access_log off;
}
上面的代码红色部分为nginx的监控代?。
2、重启nginx服务。
#/usr/local/nginx/sbin/nginx -s reload
3、在浏览器的地址栏里输入“http://192.168.1.100/Nginxststus/”就ok了。截图如下:
Active connections:2
server accepts handled requests
1077 1077 2353
Reading:0 Writing:2 Waiting:0
4、解释如下:
Active connections: 2 //nginx 正处理的活动连接数2个。
server accepts handled requests
1077 1077 2353 //nginx启动到现在共处理了1077个连接 , 成功创建1077次握手 一般跟第一个一样,差值为请求丢失数, 总共处理了2353次请求。
Reading: 0 //nginx 读取到客户端的 Header 信息数。
Writing: 2 //nginx 返回给客户端的 Header 信息数。
Waiting: 0 //开启 keep-alive 的情况下,这个值等于 active – (reading + writing),意思就是Nginx 已经处理完正在等候下一次请求指令的驻留连接。这个状态信息,从nginx启动算起,包括重载配置文件,也会清零。
附:用命令查看nginx和apache的并发连接数。
1、查看nginx并发进程数
ps -ef | grep nginx | wc -l
2、查看apache的并发连接数。
ps -ef | grep httpd | wc -l
3、查看mysql进程连接数:
ps -ef | grep mysqld -c
4、查看Web服务器(nginx apache)的并发请求数及其TCP连接状态:
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
LAST_ACK 5 (正在等待处理的请求数)
SYN_RECV 30
ESTABLISHED 1597 (正常数据传输状态)
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057 (处理完毕,等待超时结束的请求数)