负载均衡

负载平衡是一种有用的机制,可将传入的流量分布在几个有能力的服务器之间。

健康检查

健康监控对于所有类型的负载平衡都非常重要,主要是为了业务连续性。 被动检查会按照客户端的请求监视通过 Nginx 的连接失败或超时。

默认情况下启用此功能,但是此处提到的参数允许您调整其行为。 默认值为:max_fails = 1fail_timeout = 10s

示例:

  1. upstream backend {
  2. server bk01_node:80 max_fails=3 fail_timeout=5s;
  3. server bk02_node:80 max_fails=3 fail_timeout=5s;
  4. }

down 参数

有时我们需要关闭后端,例如 在维护时。 我认为良好的解决方案是使用 down 参数将服务器标记为永久不可用,即使停机时间很短也是如此。

如果您使用 IP 哈希负载平衡技术,那也很重要。 如果其中一台服务器需要临时删除,则应使用此参数进行标记,以保留客户端 IP 地址的当前哈希值。

注释对于真正永久禁用服务器或要出于历史目的而保留信息非常有用。

Nginx 还提供了一个备份参数,将该服务器标记为备份服务器。 当主服务器不可用时,将传递请求。 仅当我确定后端将在维护时正常工作时,我才很少将此选项用于上述目的。

示例

  1. upstream backend {
  2. server bk01_node:80 max_fails=3 fail_timeout=5s down;
  3. server bk02_node:80 max_fails=3 fail_timeout=5s;
  4. }