基于nginx的健康检查模块

nginx是系统部署时常常用来当做代理,负载均衡的服务。尤其对于后端服务,部署的服务可能会有多个节点,对于出现问题的节点,如何快速的踢出,并在可用的时候加进来呢。

1,nginx自带的模块ngx_http_proxy_module和ngx_http_upstream_module

使用示例如图所示

参数说明

proxy_next_upstream 指定出现何种错误或异常,将请求转到下一个节点

max_fails fail_timeout 在fail_timeout时间内节点出现失败的次数大于等于max_fails设置的值,该节点将会被踢出,下个fail_timeout再去请求一次,如果成功,该节点将会被假如正常节点。

2,淘宝技术团队开发的nginx_upstream_check_module

nginx自带的check模块相对来说比较粗糙,推荐使用淘宝技术团队开发的nginx_upstream_check_module

GitHub地址:https://github.com/yaoweibin/nginx_upstream_check_module 可参考编译安装模块

使用示例如下图所示:

interval 监测间隔,每隔interval毫秒,将会发送一次请求到所有节点 

fail 失败的次数达到fail,该节点将会标为不可用

rise 被踢出的节点,成功的次数达到rise,该节点将会标为可用

timeout 监测请求的超时时间

type 请求方式,支持tcp, ssl_hello,http,mysql,ajp,fastcgi

check_http_send 发送监测的接口配置,如示例为/api/monitor/ping http请求

check_http_expect_alive 接口成功的标识 例如http_2xx,http_3xx

可以配置对于当前nginx的upstream的节点状况,如下图所示

curl 'http://127.0.0.1:30030/status' 可以获取节点状况,方便监控节点健康状态,进行预警处理。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值