Nginx服务状态监控的方法
在Nginx的插件模块中有一个模块stub_status可以监控Nginx的一些状态信息,默认安装可能没有这个模块,手动编译的时候加一下即可。
1.模块安装
先使用命令查看是否已经安装这个模块:
[root@ihxb123Znginx]#./nginx-V(V大写会显示版本号和模块等信息、v小写仅显示版本信息。
如果已经安装,会在显示的信息中包含--with-http_stub_status_module信息。如果没有此模块,需要重新安装,编译命令如下:
./configure–with-http_stub_status_module
2.Nginx配置
安装后只要修改nginx配置即可,配置如下:
location/hxbcdnstatus{ stub_statuson; access_logoff; allow127.0.0.1; denyall; #auth_basic"NginxStatus"; #auth_basic_user_fileconf/nginxstaus; }
此处默认只有本地访问,如果远程可以查看需要加相关的IP或者干脆去掉Denyall即可。加密文件可以使用#htpasswd-c/usr/nginx/confhxb命令来创建。配置完成后需要重启Nginx服务。
状态配置只能是针对某个Nginx服务。目前Nginx还无法做到针对单个站点进行监控。
3.状态查看
配置完成后在浏览器中输入http://127.0.0.1/hxbcdnstatus查看,显示信息如下:
Activeconnections:100 serveracceptshandledrequests 107510646253 Reading:0Writing:5Waiting:95
4.参数说明
activeconnections–活跃的连接数量
serveracceptshandledrequests—总共处理了107520387个连接,成功创建107497834次握手,总共处理了639121056个请求
每个连接有三种状态waiting、reading、writing
reading—读取客户端的Header信息数.这个操作只是读取头部信息,读取完后马上进入writing状态,因此时间很短。
writing—响应数据到客户端的Header信息数.这个操作不仅读取头部,还要等待服务响应,因此时间比较长。
waiting—开启keep-alive后等候下一次请求指令的驻留连接.
正常情况下waiting数量是比较多的,并不能说明性能差。反而如果reading+writing数量比较多说明服务并发有问题。
补充:
查看Nginx并发进程数:ps-ef|grepnginx|wc-l
查看Web服务器TCP连接状态:netstat-n|awk'/^tcp/{++S[$NF]}END{for(ainS)printa,S[a]}'
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。