Nginx 配置负载均衡

Posted by liuxu379 on December 4, 2019

Nginx 的负载均衡有五种策略,分别是:

  • 轮询(默认)

  • Weight

  • ip_hash

  • fair

  • url_hash


轮询(默认)


每个请求按顺序逐一分配到不同的服务器,如果某个服务器宕机,则会自动剔除。

upstream backserver {
  server 192.168.1.1;
  server 192.168.1.2;
}

Weight


个人理解的就是按照一定比例来进行分配请求,当负载均衡服务器的配置不相同时,可以采用此种方式。

upstream backserver {
  server 192.168.1.1 weight=3;
  server 192.168.1.2 weight=7;
}

ip_hash


此种方式是为了解决 session 问题。当用户登录时,负载均衡指向的是 A 服务器,用户第二次访问的时候指向了 B 服务器,那么就找不到登录信息了。所以采用 ip_hash 这种方式可以解决这种问题。

ip_hash 模式的特点是根据 IP 的 hash 结果进行分配,让用户持续访问同一台服务器。

upstream backserver {
    ip_hash;
    server 192.168.1.1;
    server 192.168.1.2;
}

fair


这个模式是按后端服务器响应时间来分配请求,响应时间短的优先分配。

当服务器不在同一地区时可以试试。

upstream backserver {
    server 192.168.1.1;
    server 192.168.1.2;
    fair;
}

url_hash


按访问的 url 的 hash 结果来分配请求。具体的没了解,就先不写了,嘻嘻🤭