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\r\n\r\n";

      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;

   }

 

转载于:https://www.cnblogs.com/jicki/p/5548582.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nginx_upstream_check_module.tar.gz 是一个 Nginx模块,用于对 Nginx 配置中定义的各个后端服务器进行健康检查,并根据检查结果决定是否将请求转发到该服务器。 这个模块可以通过编译安装的方式添加到 Nginx使用。首先,我们需要下载源码包 nginx_upstream_check_module.tar.gz 到本地,并解压缩。然后,在编译 Nginx 时,通过添加 --add-module=/path/to/nginx_upstream_check_module 选项来指定该模块的路径。 使用模块,我们可以在 Nginx 的配置文件中定义一组后端服务器,并设置检查的间隔时间、超时时间、失败的最大次数等参数。当有请求到达时,该模块会自动进行健康检查,判断每个服务器的状态,并根据设定的规则选择合适的服务器进行请求转发。如果某个服务器在规定的时间内无法正常响应请求,该服务器会被标记为不可用,不再接收新的请求。 通过使用 nginx_upstream_check_module.tar.gz,我们可以提高服务的可用性和可靠性。当某个后端服务器出现故障时,该模块可以自动将请求转发到其他正常的服务器上,确保用户的访问不受影响。此外,该模块还可以提供监控和报警功能,方便我们及时发现并处理故障情况。 总的来说,nginx_upstream_check_module.tar.gz 是一个功能强大的 Nginx 模块,可以对后端服务器进行健康检查并自动进行请求转发,提高服务的可用性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值