Nginx服务状态的监控

一、安装Nginx

使用源码编译安装,包括具体的编译参数信息。

正式开始前,编译环境gcc g++ 开发库之类的需要提前装好。

安装make:

yum -y install gcc automake autoconf libtool make

安装g++:

yum install gcc gcc-c++

一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。

1.选定源码目录

可以是任何目录,本文选定的是/usr/local/src

cd /usr/local/src

2.安装PCRE库

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:

cd /usr/local/srcwget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gztar -zxvf pcre-8.39.tar.gzcd pcre-8.39./configuremake && make install

3.安装zlib库

http://zlib.net/zlib-1.2.11.tar.gz 下载最新的 zlib 源码包,使用下面命令下载编译和安装 zlib包:

  cd /usr/local/src

  wget http://zlib.net/zlib-1.2.11.tar.gz

  tar -zxvf zlib-1.2.11.tar.gz

  cd zlib-1.2.11

  ./configure

  make && make install

4.安装ssl(某些vps默认没装ssl)

cd /usr/local/srcwget https://www.openssl.org/source/openssl-1.1.0b.tar.gztar -zxvf openssl-1.1.0b.tar.gz

./config cd make && make install

5、安装Nginx
把 Nginx 安装到 /usr/local/nginx 目录下的详细步骤:
cd /usr/local/src wget http://nginx.org/download/nginx-1.10.2.tar.gz tar -zxvf nginx-1.10.2.tar.gz cd nginx-1.10.2
1、配置Nginx的安装参数
./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.39 --with-zlib=/usr/local/src/zlib-1.2.11 --with-openssl=/usr/local/src/openssl-1.1.0b --prefix=/usr/local/nginx --with-http_stub_status_module
2、编译安装
make && make install
3、启动Nginx
/usr/local/nginx/nginx
网页访问查看是否正常启动:

 

5、配置Nginx的监控选项:

配置文件路径:/usr/local/nginx/nginx.conf

添加如下代码:

#设定Nginx状态访问地址

location /NginxStatus {

stub_status on;

access_log on;

auth_basic "NginxStatus";

#auth_basic_user_file conf/htpasswd;

}

配置完成重启Nginx,命令:/usr/local/nginx/nginx  -s reload

6、状态查看

配置完成后在浏览器中输入http://192.168.0.194/NginxStatus查看,显示信息如下:

7、 参数说明

  active connections – 活跃的连接数量

  server accepts handled requests — 总共处理了107520387个连接 , 成功创建107497834次握手, 总共处理了639121056个请求

  每个连接有三种状态waiting、reading、writing

  reading —读取客户端的Header信息数.这个操作只是读取头部信息,读取完后马上进入writing状态,因此时间很短。

  writing — 响应数据到客户端的Header信息数.这个操作不仅读取头部,还要等待服务响应,因此时间比较长。

  waiting — 开启keep-alive后等候下一次请求指令的驻留连接.

  正常情况下waiting数量是比较多的,并不能说明性能差。反而如果reading+writing数量比较多说明服务并发有问题。

================================================

  补充:

  查看Nginx并发进程数:ps -ef | grep nginx | wc -l

  查看Web服务器TCP连接状态:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'