调度算法详解
用balance指令指明调度算法, 例如:balance roundrobin
1:roundrobin :动态轮询算法,基于后端服务器的总权重做轮询,后端的服务器数量限制在4095个以内,并且支持慢启动机制
2:static-rr:动态轮询算法,基于后端服务器的总权重做轮询,后端的服务器数量无限制,不支持慢启动机制
3:leastconn:最少连接算法
4:first:当请求调度到后端某一台服务器之后,必须让这台服务器达到最大并发请求,才会将新的请求调度到其他的主机上
5:source:基于客户端的IP做hash计算,到底使用hash取摸算法还是hash一致性算法,取决于hash-type指令的值
6:uri:基于客户端请求的URI做hash计算,到底使用hash取摸算法还是hash一致性算法,取决于hash-type指令的值,适用于后端为varnish这样的缓存服务器
7:url_param:基于客户端请求URL的参数做hash计算,到底使用hash取摸算法还是hash一致性算法,取决于hash-type指令的值,使用与登入界面的电商站点,使得同一个用户登入,始终发往同一台后端动态服务器
8:hdr(header_name):对指定的请求报文首部请求做hash计算,如果请求报文首部没有值,那么将轮询
hash-type指令详解
hash-type:指明使用什么hash算法,有如下可选算法
(1)map-based:hash取摸调度算法
(2)consistent:一致性hash调度算法