前面讲了如何配置Nginx虚拟主机,今天简单介绍下如何监控Nginx的状态。实际环境中,查看Nginx 的运行状态,一般都是通过Nginx 的日志来查看,但是通过日志没办法实时查看Nginx 总体的请求和接收情况。还是需要监控Nginx的运行状态。
其实要监控Nginx的状态非常简单,它内建了一个状态页,只需修改Nginx配置启用Status即可,对于想了解nginx的状态以及监控nginx非常有帮助。下面就来聊一聊如何监控Nginx的运行状态。
1、安装Status模块
Nginx 状态依赖 http_stub_status_module 模块, 一般源码安装可能打开相关模块。先使用命令查看是否已经安装这个模块:
nginx -V 2>&1 | grep -o with-http_stub_status_module
说明:V大写会显示版本号和模块等信息、v小写仅显示版本信息。
如果返回 with-http_stub_status_module,则说明该模块已被开放,而什么都不返回的话就是没有被开放。
如果已经安装,会在显示的信息中包含 --with-http_stub_status_module信息。如果没有此模块,需要重新安装,编译命令如下:
./configure –with-http_stub_status_module
2、 修改Nginx配置
打开http_stub_status_module模块之后,还需要修改 Nginx 配置文件,在默认主机里面加上 location 或者你希望能访问到的主机里面加上如下配置:
location /status {
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即可。
状态配置只能是针对某个Nginx服务。目前Nginx还无法做到针对单个站点进行监控。
配置文章后,重启你的nginx即可。
3、 打开Status页面
在浏览器中输入nginx的地址:http://127.0.0.1/status,即可查看nginx的状态信息:
4、Nginx status状态详解
在nginx 状态页面,可以看到几个数字,但是都是对应哪个参数呢?
Active connections – 活跃的连接数量
server accepts handled requests — 对应的是:连接数、成功创建的tcp握手、总请求数 三个参数。上面的示例说明:总共处理了7个连接 , 成功创建7次握手, 总共处理了36个请求。
reading — 读取客户端的连接数。
writing — 响应数据到客户端的数量。
waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接。
通过这七个参数,就可以从连接到请求全方位的监控起 Nginx 的运行状态。
后
以上,就把配置启用Nginx status状态介绍完了,是不是特别简单。
因为后面还要介绍Nginx 的优化,免不了查看Nginx的状态。所以这里就提前介绍下。下篇会介绍Nginx的高性能优化,怎么让Nginx服务器实现10w的并发访问量。