Nginx后端健康监测

我使用的nginx是1.2.1的源码安装的,因为nginx自带的fail次数检测并不能真正地实现停止对后端app的转发,因此考虑用nginx_upstream_check_module模块来做后端web的健康监测。

下载nginx的模块https://github.com/yaoweibin/nginx_upstream_check_module

cd /usr/local

tar zxvf nginx-1.2.1.tar.gz

unzip yaoweibin-nginx_upstream_check_module-v0.1.6-17-gdfee401.zip

cd nginx-1.2.1

patch -p1 < /usr/local/yaoweibin-nginx_upstream_check_module-dfee401/check_1.2.1+.patch

(如果你的nginx版本不是1.2.1以上的,请用patch -p1 < /usr/local/yaoweibin-nginx_upstream_check_module-dfee401/check.patch)

(nginx用户自己创建吧)

./configure --prefix=/usr/local/nginx  --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --add-module=/usr/local/yaoweibin-nginx_upstream_check_module-dfee401/

make

make install

编辑nginx的配置文件,在http里面增加你的check健康

upstream   backend
    {
        ip_hash;
        server 192.168.64.98:58580;
        check interval=1000 rise=2 fall=2 timeout=1000;
        server 192.168.64.140:58580;
        check interval=1500 rise=2 fall=2 timeout=1000;
        #server 192.168.64.182:9090 max_fails=30  fail_timeout=30s;
        #server 192.168.64.99:58590 max_fails=30  fail_timeout=30s down;
    }

interval检测间隔时间,单位为毫秒,rsie请求2次正常的话,标记此realserver的状态为up,fall表示请求2次都失败的情况下,标记此realserver的状态为down,timeout为超时时间,单位为毫秒。
在server段里面可以加入查看realserver状态的页面

location /nstatus {
check_status;
access_log off;
#allow SOME.IP.ADD.RESS;
#deny all;
}

打开nstatus就可以看到web的健康状况

Nginx后端健康监测

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/6a0c45e6dff8bab5a9559d17e47c1de7.html