Nginx的负载均衡max_fails和fail_timeout设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx的负载均衡max_fails和fail_timeout设置相关的知识,希望对你有一定的参考价值。

描述

nginx的负载均衡检查模块中,对于负载均衡的节点可以配置如下可选参数参数:

max_fails=1

fail_timeout=10s

这个是Nginx在负载均衡功能中,用于判断后端节点状态,所用到两个参数。

Nginx基于连接探测,如果发现后端异常,在单位周期为fail_timeout设置的时间,中达到max_fails次数,这个周期次数内,如果后端同一个节点不可用,那么接将把节点标记为不可用,并等待下一个周期(同样时常为fail_timeout)再一次去请求,判断是否连接是否成功。如果成功,将恢复之前的轮询方式,如果不可用将在下一个周期(fail_timeout)再试一次。

默认:fail_timeout为10s,max_fails为1次。

说明

在两个节点都可用的情况下,突然有一个节点挂掉,客户端请求过来后哪怕请求到了不可用的节点,此次请求也不会失败,因为Nginx会把此次请求转发到另外一个可用节点,再把结果返回给客户端。
当一个节点挂掉,Nginx不知道节点是否恢复的时候,会把客户端的请求同时转发到两个节点,判断节点健康情况。
技术分享图片

示例

技术分享图片
如上配置表明如果后端节点10秒内出现2次不可用情况,判定节点不可用。判定不可用后10秒内请求不会转发到此节点,直到10秒后重新检测节点健康情况。

以上是关于Nginx的负载均衡max_fails和fail_timeout设置的主要内容,如果未能解决你的问题,请参考以下文章

nginx如何搭建负载均衡?

nginx 基础 4 负载均衡

这些 Nginx 负载均衡配置误区,运维请注意~

nginx负载均衡的五种算法

nginx负载均衡的五种算法

Nginx学习笔记07负载均衡之主机分配策略和主机失效参数