zoukankan      html  css  js  c++  java
  • Nginx 负载均衡 后端 监控检测 nginx_upstream_check_module 模块的使用

    在使用nginx 的负载均衡 中,我们通常会使用到 Nginx 自带的 ngx_http_proxy_module 健康检测模块。

    ngx_http_proxy_module 自带的 健康检测模块参数如下:

    weight   : 轮询权值也是可以用在ip_hash的,默认值为1


    max_fails : 允许请求失败的次数,默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误。


    fail_timeout : 有两层含义,一是在 30s 时间内最多容许 2 次失败;二是在经历了 2 次失败以后,30s时间内不分配请求到这台服务器。


    backup : 预留的备份机器。当其他所有的非backup机器出现故障的时候,才会请求backup机器,因此这台机器的压力最轻。


    max_conns: 限制同时连接到某台后端服务器的连接数,默认为0即无限制。因为queue指令是commercial,所以还是保持默认吧。


    proxy_next_upstream : 这个指令属于 http_proxy 模块的,指定后端返回什么样的异常响应时,使用另一个realserver

    例子如下:

    upstream login {

          server 172.16.0.1:8081 max_fails=3 fail_timeout=30s;

    nginx_upstream_check_module 是专门提供负载均衡器内节点的健康检查的外部模块,由淘宝的姚伟斌大神开发。tengine 默认自带了这个模块。

    check 模块的参数只能出现在upstream中,参数如下:


    interval : 向后端发送的健康检查包的间隔。


    fall : 如果连续失败次数达到fall_count,服务器就被认为是down。


    rise : 如果连续成功次数达到rise_count,服务器就被认为是up。


    timeout : 后端健康请求的超时时间。


    default_down : 设定初始时服务器的状态,如果是true,就说明默认是down的,如果是false,就是up的。默认值是true,也就是一开始服务器认为是不可用,要等健康检查包达到一定成功次数以后才会被认为是健康的。


    type:健康检查包的类型,现在支持以下多种类型


    tcp:简单的tcp连接,如果连接成功,就说明后端正常。


    http:发送HTTP请求,通过后端的回复包的状态来判断后端是否存活。


    ajp:向后端发送AJP协议的Cping包,通过接收Cpong包来判断后端是否存活。


    ssl_hello:发送一个初始的SSL hello包并接受服务器的SSL hello包。


    mysql: 向mysql服务器连接,通过接收服务器的greeting包来判断后端是否存活。


    fastcgi:发送一个fastcgi请求,通过接受解析fastcgi响应来判断后端是否存活


    port: 指定后端服务器的检查端口。你可以指定不同于真实服务的后端服务器的端口,比如后端提供的是443端口的应用,你可以去检查80端口的状态来判断后端健康状况。默认是0,表示跟后端server提供真实服务的端口一样。

    check_http_expect_alive 指定HTTP回复的成功状态,默认认为 2XX 和 3XX 的状态是健康的。

    这里我们也可以设置其他的。比如 404 403 等。

    例子如下:(我们可以两个模块一起使用)

    upstream login {

          server 172.16.0.1:8081 max_fails=3 fail_timeout=30s;

          check interval=5000 rise=2 fall=3 timeout=1000 type=http;

          check_http_send "HEAD / HTTP/1.0 ";

          check_http_expect_alive http_2xx http_3xx http_4xx;

     }

    设置好 upstream 以后我们可以在 server 里面设置 status 来查看状态。

        location /status {

           check_status;

           access_log off;

           allow 172.16.0.0/16;

           deny all;

       }

  • 相关阅读:
    Input(Checkbox)全选删除
    DropDownList查询&Input(Checkbox)查询
    分页(二)
    webform---组合查询&流水号生成
    (转)C#生成中文汉字验证码源码(webform)
    文件上传
    [转]用C#如何实现大文件的断点上传
    DOM操作----open()
    经典背包问题的探讨
    贪心算法----正整数分解问题 和相同,乘积最大
  • 原文地址:https://www.cnblogs.com/jicki/p/5548582.html
Copyright © 2011-2022 走看看