轮询(默认策略)
轮询策略需要两台服务器的性能一样,不然就会出现一台服务器请求阻塞的情况。
注意:这里的轮询并不是每个请求轮流分配到不同的后端服务器,与ip_hash类似,但是按照访问url的hash结果来分配请求,使得每个url定向到同一个后端服务器,主要应用于后端服务器为缓存时的场景下。如果后端服务器down掉,将自动剔除
upstreambackserver {
server 127.0.0.1:8080;
server 127.0.0.1:9090;
}
2.权重
当两台服务器的性能不同的时候,使用权重策略。
每个请求按一定比例分发到不同的后端服务器,weight值越大访问的比例越大,用于后端服务器性能不均的情况
upstreambackserver {
server 192.168.0.14 weight=5;
server 192.168.0.15 weight=2;
}
3.最小连接数
那个服务器不忙,就把请求转发到那个服务器。
web请求会被转发到连接数最少的服务器上
upstreambackserver {
least_conn;
server 127.0.0.1:8080;
server 127.0.0.1:9090;
}
4.ip hash
可以解决session回话丢失的问题
ip_hash也叫IP绑定,每个请求按访问ip的hash值分配,这样每个访问客户端会固定访问一个后端服务器,可以解决会话Session丢失的问题
算法:hash("124.207.55.82")% 2 = 0, 1
upstreambackserver {
ip_hash;
server 127.0.0.1:8080;
server 127.0.0.1:9090;
}
如果用户的ip变了,跟着相应的hash值也需要变,但是hash值有可能不会变。当hash没有改变时,服务器可能会出现过载而down掉。
5.其他配置
5.1备份服务器
配置1:
upstreambackserver {
server 127.0.0.1:9100;
#其它所有的非backup机器down的时候,才请求backup机器
server 127.0.0.1:9200 backup;
}
5.2 宕机,不处理任何请求
配置2:
upstreambackserver {
server 127.0.0.1:9100;
#down表示当前的server是down状态,不参与负载均衡
server 127.0.0.1:9200 down;
}




