Nginx负载均衡

Posted by 少年不年少 on August 18, 2021

常见的负载均衡方式有:

  • 热备
  • 轮询(默认)
  • 加权轮询
  • Ip_Hash

热备

假如有两台服务器A和B,只有A故障后才访问B。

upstream mysvr { 
    server 127.0.0.1:7878; 
    server 127.0.0.1:8787 backup;  #热备
}

轮询

服务器如果down掉,自动剔除

upstream mysvr { 
    server 127.0.0.1:7878;
    server 127.0.0.1:8787;  
}

加权轮询

weight 权重越高,分配的客户端越多

upstream mysvr { 
    server 127.0.0.1:7878 weight = 1 ;
    server 127.0.0.1:8787 weight = 10;  
}

Ip_Hash

对同一个IP,每次路由至固定服务器,可以解决session不共享的问题。

upstream mysvr { 
    server 127.0.0.1:7878;
    server 127.0.0.1:8787; 
    Ip_Hash;
}

FailOver配置

包含两个参数max_fails和fail_timeout,具体如下:

upstream mysvr { 
    server 127.0.0.1:7878 max_fails = 3 fail_timeout = 30;
    server 127.0.0.1:8787 max_fails = 3 fail_timeout = 30; 
}

max_fails设置允许请求代理服务器失败的次数,默认为1。

fail_timeout设置经过max_fails失败后,nginx不再转发请求到该服务器的时间间隔,默认是10秒。