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 结果来分配请求。具体的没了解,就先不写了,嘻嘻🤭