zoukankan      html  css  js  c++  java
  • nginx添加 nginx_heath模块

    原因?为什么会使用nginx_heath 这个模块,主要是如nginx+tomcat部署的时,tomcat挂了之后nginx->upstream 轮询是可以踢掉挂掉的tomcat服务的,如果部署的机器挂了之后nginx轮询是不能踢掉的,如果服务再去请求,就会出现请求超时!

    1、ngx_http_proxy_module 模块和ngx_http_upstream_module模块(自带)
    官网地址:http://nginx.org/cn/docs/http/ngx_http_proxy_module.html#proxy_next_upstream
    2、nginx_upstream_check_module模块
    官网网址:https://github.com/yaoweibin/nginx_upstream_check_module
    3、ngx_http_healthcheck_module模块
    官网网址:http://wiki.nginx.org/NginxHttpHealthcheckModule

    目前主要使用的是第二种解决方式:

    1.添加nginx_heath模块

    首先需要添加【nginx_upstream_check_module】模块:http://pan.baidu.com/s/1caLNUe

    ./nginx -V

    查看已经添加的nginx模块如:--prefix=/opt/nginx-new --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre

    进入nginx源码中为nginx打补丁:patch -p0 < ../nginx_upstream_check_module-master/check_1.5.12+.patch,这个需要合适的版本,不然会出现打补丁失败,如果提示没有patch命令的话,请先安装yum -y install patch

    追加nginx_upstream_check_module模块:--prefix=/opt/nginx-new --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre --add-module=/home/software/nginx_upstream_check_module-master

    然后make

    2.配置upstream加入健康检查

    upstream name{

      server 10.144.48.157:8205;
      server 119.29.204.12:8889;
      check interval=3000 rise=2 fall=3 timeout=3000 type=tcp;
    }

    上面配置的意思是,对name这个负载均衡条目中的所有节点,每个3秒检测一次,请求2次正常则标记 realserver状态为up,如果检测 5 次都失败,则标记 realserver的状态为down,超时时间为1秒。

    指定参数的意思:

    - interval:向后端发送的健康检查包的间隔。
    - fall(fall_count): 如果连续失败次数达到fall_count,服务器就被认为是down。
    - rise(rise_count): 如果连续成功次数达到rise_count,服务器就被认为是up。
    - timeout: 后端健康请求的超时时间。
    - default_down: 设定初始时服务器的状态,如果是true,就说明默认是down的,如果是false,就是up的。默认值是true,也就是一开始服务器认为是不可用,要等健康检查包达到一定成功次数以后才会被认为是健康的。
    - type:健康检查包的类型,现在支持以下多种类型
    - tcp:简单的tcp连接,如果连接成功,就说明后端正常。
    - ssl_hello:发送一个初始的SSL hello包并接受服务器的SSL hello包。
    - http:发送HTTP请求,通过后端的回复包的状态来判断后端是否存活。
    - mysql: 向mysql服务器连接,通过接收服务器的greeting包来判断后端是否存活。
    - ajp:向后端发送AJP协议的Cping包,通过接收Cpong包来判断后端是否存活。
    - port: 指定后端服务器的检查端口。你可以指定不同于真实服务的后端服务器的端口,比如后端提供的是443端口的应用,你可以去检查80端口的状态来判断后端健康状况。默认是0,表示跟后端server提供真实服务的端口一样。该选项出现于Tengine-1.4.0。

    3.配置web页面

    location /nstatus {
      check_status;
      access_log off;
    }

    如图:

    如果有down掉的如图

    另外还支持参数请求?status=up,显示出up状态的upstream。

  • 相关阅读:
    BeautifulSoup 安装使用
    用Mediawiki做百科网站资源大参考
    ubutun 下webalizer 分析Apache日志
    网站流量统计系统 phpMyVisites
    mysql的root密码忘记解决方
    mrtg监控网络流量简单配置
    CentOS 6.4下Squid代理服务器的安装与配置,反向代理
    linux 查看文件系统类型
    JAVA多媒体编程入门(图像部分)
    log4net使用具体解释
  • 原文地址:https://www.cnblogs.com/ppli/p/6236906.html
Copyright © 2011-2022 走看看