轮询
这里的轮询并不是每个请求轮流分配到不同的后端服务器,与ip_hash类似,但是按照url的hash结果来分配请求,使得每个url丁香岛同一个后端服务器,主要应用于后端服务器为缓存时的场景
如果后端服务器down掉,将自动删除
# 一个一次,最均衡
upstrem backserver{
server 127.0.0.1:8080;
server 127.0.0.1:9090;
}
权重
每个请求按一定比例发到不同的后端服务器,weight值越大访问的比例越大,用于后端服务器性能不均的情况
upstrem backserver{
server 127.0.0.14:8080 weight=5;
server 127.0.0.15:9090 weight=2;
}
ip_hash
ip_hash也叫ip绑定,每个请求按访问ip的hash值分配,这样每个访问客户端会固定访问一个后端服务器,可以解决会话session丢失的问题
hash("124.207.55.82")%2 = 0,1
upstrem backserver{
ip_hash;
server 127.0.0.14:8080 weight=5;
server 127.0.0.15:9090 weight=2;
}
最少连接
web请求会被转发到链接数量最少的服务器上
upstrem backserver{
least_conn
server 127.0.0.14:8080 weight=5;
server 127.0.0.15:9090 weight=2;
}
其他负载均衡参数
backup
在其他服务器不可用时,作为备用服务器
具体场景:
100台服务器更新代码,先更新backup的,再停掉50台更新,这时会有少量请求发送至backup。重启前50,停掉剩下50更新。backup作为暂时的备胎使用
upstrem backserver{
least_conn
server 127.0.0.14:8080 ;
server 127.0.0.15:9090 backup;
}
down
upstrem backserver{
least_conn
server 127.0.0.14:8080 ;
# down表示当前的server是down状态,不参与负载均衡
server 127.0.0.15:9090 down;
}