【Nginx】心跳检测之实战nginx_upstream_check_module模块

本文介绍了Nginx自带的健康检查机制的不足,以及Tengine的nginx_upstream_check_module模块如何实现主动式心跳检测,详细讲解了配置方法,包括HTTP和TCP类型的健康检查,以及如何定制化健康检查接口。
摘要由CSDN通过智能技术生成

一、Nginx心跳检测问题

​       Nginx自带的针对后端节点健康检查的功能比较简单,主要是通过默认自带的ngx_http_proxy_module 模块和ngx_http_upstream_module模块中的相关指令来完成。实际上,nginx不算是自带健康检查的功能,而是当后端节点出现故障时,会切换到健康节点来提供访问。

​       如下,是一段我们现在常用的配置

upstream server_meeting_join {
    server manager-master:9884 weight=1 max_fails=5 fail_timeout=10s;
    server manager-slave-1:9884 weight=1 max_fails=5 fail_timeout=10s;
    server manager-slave-2:9884 weight=1 max_fails=5 fail_timeout=10s;
}

​       权重为1表示请求会依次轮询这三个节点,而max_fails则是设定Nginx与服务器通信的尝试失败的次数,此处设为5,则表示如果失败的次数达到5次,Nginx就认为服务器不可用。但是这样会带来一个问题,如果后端有不健康节点,负载均衡器依然会先把该请求转发给该不健康节点,尝试5次,然后再转发给别的节点,这样就会浪费一次转发,可能会造成响应时间过久。

 

二、Tengine的健康检查

​       区别于nginx自带的非主动式的心跳检测,淘宝开发的tengine自带了一个提供

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值