nginx 配置负载均衡有轮询(默认),权重 weight,ip_hash(依据ip分配),least_conn(最少连接),fair(第三方),url_hash第三方)方式来配置。
轮询(默认的方式)
默认情况下使用轮询方式,逐一转发,这种方式适用于无状态请求。
upstream mytomcats{
server 192.168.0.253:8080;
server 192.168.0.253:8081;
server 192.168.0.252:8080;
server 192.168.0.252:8081;
}
权重 weight
值越大, 分配越多
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream mytomcats{
server 192.168.0.253:8080 weight=8 down;
server 192.168.0.253:8081 weight=2;
server 192.168.0.252:8080 weight=2;
server 192.168.0.252:8081 weight=1 backup;
}
- down:表示当前的server暂时不参与负载
- weight:默认为1.weight越大,负载的权重就越大。
- backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。
ip_hash
根据客户端的ip地址转发同一台服务器,可以保持回话。
在用户ip 未更改的前提下, 用户多次请求会访问到同一个服务器
如果要移除某个服务器, 只能标记为 down, 不能直接删除
upstream mytomcats{
ip_hash;
server 192.168.0.253:8080;
server 192.168.0.253:8081;
server 192.168.0.252:8080;
server 192.168.0.252:8081 down;
}
url_hash
据每次请求的url地址,hash后访问到同一个的服务器
upstream mytomcats{
# url hash
hash $request_uri;
server 192.168.0.253:8080;
server 192.168.0.253:8081;
server 192.168.0.252:8080;
server 192.168.0.252:8081;
}