浏览 1.2k
1. RoundRobin
默认负载均衡方法为RoundRobin(轮询),会考虑服务器权值(serverweight),无法手动配置该指令。
2. LeastConnection
NGINX的LeastConnection方法会把serverweight计算在其中。若有多个相同的server,则变为RoundRobin。
3. LeastTime
HTTP的LeastTime方法为NginxPlus专属,分为以下三种类型:
header:从服务器获取响应包包头的时间
last_byte:从服务器获取完整响应包的时间
last_byte inflight:从服务器获取完整响应包的时间,未完成的请求也计算在内
4. Generic Hash
根据hashkey值来关联客户端-服务器的映射关系。key值可以包括文本、变量或者两者组合。与TCP/UDP中的Hash相同。
5. IPHash
与TCPLoad Balancing中的Hash方法类似,但IP Hash仅用在HTTP模块并只针对IPv4/IPv6类的客户端地址进行Hash值计算。来自同一个地址的请求会被分配到同一个服务器。
6. Random
Random方法会将请求随机分配给服务器。若指定了“two”参数,则Nginx随机选取两台服务器(计算serverweight),并选择其中一台服务器使用指定的负载均衡方法。可指定的参数有:
least_conn:最小活动连接数
least_time=header(Plus专属):从服务器获取响应包包头的最小平均时间
least_time=last_byte(Plus专属):从服务器获取响应包最后一个字节的最小平均时间
7. Sticky
Sticky方法属于NGINX PLUS独有的SessionPersistence方法,其包含三种类型:sticky cookie、sticky route和sticky learn。
(1) Sticky cookie
该方法会在第一个请求到达nginx的upstream时,会根据已配置的LB方法对server进行选择。当upstream返回
第一个请求的response时,nginx会将sessioncookie插入其中,nginx根据后面request的cookie值来选择
server。可设置的参数有:cookiename,expires,domain,path,后三项为可选项。Cookie值为一般为
IP+Port二元组或者Unix域socket路径的MD5值,若server指令下存在“route”值,则cookie值为route值。
(2) Sticky route
此方法和stickycookie类似,在客户端发起第一次请求时,接收它的服务器为其分配一个route,此后这个客户端
发起的所有请求都要带上这个route信息,或者在cookie中或者在uri中。然后和server指令中的route参数做对
比,决定选取哪个server。如果指定的服务器无法处理,那交给负载均衡算法去选择下一个服务器。此方法需
要服务器端生成cookie。
(3) Sticky learn
此方法利用request/response中生成的标识符来进行session persistence,比如通过cookie中header的sessionid
进行识别和追踪,从而得知sessionid所对应的上游服务器。当一个request的cookie中包含了nginx已识别的
sessionid,nginx会直接把该request发送给相对应的服务器。
按点赞数排序
按时间排序