方法一:

本模块在编译的时候默认是不编译的,如果你是从源码编译安装的nginx,那么需要在编译的时候加上对应的模块

./configure –with-http_stub_status_module

使用 ./configure –help 能看到更多的模块支持。然后编译安装即可。
如果是直接 apt-get install 安装的 nginx,那么使用命令来查看是否支持 stub_status 这个模块。如下命令:

www.it165.net
nginx -V

看看是否有 –with-http_stub_status_module 这个模块。
ok,上面的事情告一段落,接下来需要在nginx的配置文件中增加这个配置项。打开nginx的配置文件 nginx.conf,在server段里面增加如下的内容:

location /nginx-status {
allow 127.0.0.1; //允许的IP
deny all;
stub_status on;
access_log off;
}

重启nginx,在浏览器中输入 http://localhost/nginx-status 就会出现相应的结果了。如下:

Active connections: 1
server accepts handled requests
2         2      6
Reading: 0 Writing: 1 Waiting: 0

Active connections:对后端发起的活动连接数。
Server accepts handled requests:Nginx总共处理了2个连接,成功创建2次握手(证明中间没有失败的),总共处理了6个请求。
Reading:Nginx 读取到客户端的Header信息数。
Writing:Nginx 返回给客户端的Header信息数。
Waiting:开启keep-alive的情况下,这个值等于 active – (reading + writing),意思就是Nginx已经处理完成,正在等候下一次请求指令的驻留连接。

方法二:

利用nginx-status配置可以用网页的形式查看nginx服务器的连接数、请求数等情况。,下面来介绍下如何配置nginx-status页面

1、创建perl脚本pwd.pl,作为nginx basic auth模块的密码生成器,代码如下
1 #!/usr/bin/perl
2 use strict;
3 my $pw=$ARGV[0];
4 print crypt($pw,$pw)."\n";
2、打开nginx.conf配置文件,在server块中加入以下代码即可
1 location /nginx-status {
2              auth_basic              "NginxStatus";
3              stub_status on;
4              access_log  on;
5              auth_basic_user_file    /lnmp/nginx/conf/htpasswd;
6         }
3、设置pwd.pl的可执行权限并执行./pwd.pl,将显示出来的密码复制。
4、创建或打开 /lnmp/nginx/conf/htpasswd文件,按用户名:加密后的密码的格式设置。
5、kill -HUP nginx主进程号
6、用浏览器打开http://ip/nginx-status,输入设置的用户名密码即可看到服务器连接状态,如下所示:
Active connections: 对后端发起的活动连接数.
Server accepts handled requests: Nginx总共处理了77个连接,成功创建77次握手(证明中间没有失败的),总共处理了239个请求.
Reading: Nginx 读取到客户端的Header信息数.
Writing: Nginx 返回给客户端的Header信息数.
Waiting: 开启keep-alive的情况下,这个值等于 active – (reading + writing),意思就是Nginx已经处理完成,正在等候下一次请求指令的驻留连接。
可以以此用shell脚本算出平均每秒的请求数
01 #!/bin/bash
02 QINGQIU1=`curl -s  http://ip/nginx-status | awk '/server accepts handled requests/ {getline a;split(a,s); print s[length(s)]}'`
03 sleep 5
04 QINGQIU2=`curl -s  http://ip/nginx-status | awk '/server accepts handled requests/ {getline a;split(a,s); print s[length(s)]}'`
05 if [ $QINGQIU2 -gt 0 ]
06 then
07 QINGQIU=`expr $QINGQIU2 - $QINGQIU1`
08 PER=`expr $QINGQIU / 5`
09 echo "The nginx request is ${PER} per second"
10 fi

Leave a Reply

Your email address will not be published. Required fields are marked *