Nginx负载均衡中常见的算法
1.nginx负载均衡中常见的算法及原理
1.1 RR(round robin)轮询算法
依次将请求分配到各个后台服务器
例:
upstream webs {
server 192.168.1.11;
server 192.168.1.12;
server 192.168.1.13;
}
1.2 加权轮询(weight round robin)
根据权重将请求分配到不同机器中
例:
upstream webs {
server 192.168.1.11 weight=3;
server 192.168.1.12 weight=2;
server 192.168.1.13 weight=2;
}
1.3 源地址hash (ip_hash)
源地址hash调度方法,基于的客户端的remote_addr(源地址IPv4的前24位或整个IPv6地址)做hash计算,以实现会话保持
例:
upstream webs {
ip_hash;
server 192.168.1.11;
server 192.168.1.12;
server 192.168.1.13;
}
1.4 目的地 url hash
根据请求的url的hash值分配服务器,当后台服务器为缓存时,效率较高
例:
upstream webs {
hash $request_uri;
server 192.168.1.11;
server 192.168.1.12;
server 192.168.1.13;
}
1.5 最快响应时间 (fair)
根据服务器响应时间来分发,响应时间短,分发越多
例:
upstream webs {
fair;
server 192.168.1.11;
server 192.168.1.12;
server 192.168.1.13;
}
1.6 最小连接 (least_conn)
最少连接调度算法,优先将客户端请求调度到当前连接最少的后端服务器,相当于LVS中的WLC
例:
upstream webs {
least_conn;
server 192.168.1.11;
server 192.168.1.12;
server 192.168.1.13;
}