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;
}