Nginx添加http_stub_status查看状态和并发等

说明:
http_stub_status模块能够获取Nginx的并发连接,请求等。
因 此模块非核心模块,所以需要在编译的时候需手动添加编译参数–with-http_stub_status_module

#/usr/local/nginx/sbin/nginx -V
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

实现:
1.创建perl脚本pwd.pl,作为nginx basic auth模块的密码生成器,代码如下

#!/usr/bin/perl
use strict;
my $pw=$ARGV[0];
print crypt($pw,$pw)."\n";

也可以使用Apache htpasswd命令生成密码。htpasswd命令具体使用方法请看:Apache htpasswd命令用法详解及示例
2.编辑nginx.conf文件,添加以下内容

#vim /usr/local/nginx/conf/nginx.conf
location /nginx_status {
	auth_basic              "NginxStatus";
	auth_basic_user_file    /lnmp/nginx/conf/htpasswd;
	stub_status on;
	access_log off;
	allow 127.0.0.1; //本机测试需添加此条记录
	deny 192.168.1.1;
	allow 192.168.1.0/24; //允许192.168.1.0/24访问,拒绝192.168.1.1访问
	allow 10.1.1.0/16;
	allow 2620:100:e000::8001; //此处是ipv6的地址
	deny all; //除了上述地址,拒绝所有连接。写allow,deny时,注意顺序
}

3、设置pwd.pl的可执行权限并执行./pwd.pl,将显示出来的密码复制。
4、创建或打开 /lnmp/nginx/conf/htpasswd文件,按用户名:加密后的密码的格式设置。
5.重启nginx

/usr/local/nginx/sbin/nginx -t  //测试配置是否正确
/usr/local/nginx/sbin/nginx -s reload

6.测试and参数说明
浏览器地址栏输入http://ip/nginx_status,输入设置的用户名密码即可看到”stub status” 模块返回的状态信息跟 mathopd’s 的状态信息很相似.
返回的状态信息如下:
Active connections: 291
server accepts handled requests
: 16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106

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

附录:
1、可以用此shell脚本算出平均每秒的请求数

#!/bin/bash
QINGQIU1=`curl -s  http://ip/nginx-status | awk '/server accepts handled requests/ {getline a;split(a,s); print s[length(s)]}'`
sleep 5
QINGQIU2=`curl -s  http://ip/nginx-status | awk '/server accepts handled requests/ {getline a;split(a,s); print s[length(s)]}'`
if [ $QINGQIU2 -gt 0 ]
then
QINGQIU=`expr $QINGQIU2 - $QINGQIU1`
PER=`expr $QINGQIU / 5`
echo "The nginx request is ${PER} per second"
fi

2、这两个网址是讲得还不错,先放这存着

http://blog.kovyrin.net/2006/04/29/monitoring-nginx-with-rrdtool/

http://dev.2xlp.com/svn/nginx_config/trunk/conf/_rrd/__README__.txt

参考资料:
nginx添加http_stub_status查看并发等:http://coolnull.com/150.html
利用nginx-status监控nginx服务器状态:http://my.oschina.net/gorillaz/blog/107878?p=1

发表评论?

0 条评论。

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据