nginx负载均衡中常见的算法及原理有哪些?
一、nginx负载均衡常用算法
1.1 轮询
轮询,nginx默认方式。一次将请求分配给各个后台服务器。
upstream backserver {
server 10.0.0.7;
server 10.0.0.8;
}
1.2 加权轮询
根据权重加权依次轮询,默认为1,实现类似于LVS中的WRR,WLC等。默认时和rr效果一样。
upstream backserver {
server 10.0.0.7 weight 20;
server 10.0.0.8 weight 30;
}
1.3 源地址hash
源地址hash调度方法,基于的客户端的remote_addr(源地址IPv4的前24位或整个IPv6地址)做hash计算,以实现会话保持。
upstream backserver {
ip_hash;
server 10.0.0.7;
server 10.0.0.8;
}
1.4 目的url hash
根据请求的url的hash值分配服务器,当后台服务器为缓存时,效率较高。
upstream backserver {
consistent_hash $remote_addr;
server 10.0.0.7;
server 10.0.0.8;
}
1.5最少连接数
最少连接调度算法,优先将客户端请求调度到当前连接最少的后端服务器,相当于LVS中的WLC。
upstream backserver {
least_conn;
server 10.0.0.7;
server 10.0.0.8;
}
1.6 最快响应时间
根据服务器响应时间来分发,响应时间短,分发越多。
upstream backserver {
fair;
server 10.0.0.7;
server 10.0.0.8;
}