Nginx实现负载均衡与负载均衡算法总结

[ CentOS ] 2020-05-05 18:57:09 杨歆 345

轮询

将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。

upstream  server {

    server localhost:81;
    server localhost:82;
    server 192.168.1.10;

}

权重轮询

不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重,让其处理更多的请;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载,加权轮询能很好地处理这一问题,并将请求顺序且按照权重分配到后端。

upstream  server {

    server localhost:81 weight=1;
    server localhost:82 weight=2;
    server 192.168.1.10 weight=3;

}

源地址哈希法(ip_hash)

根据获取客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号。采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。

upstream  server {

    ip_hash; 
    server localhost:81;
    server localhost:82;
    server 192.168.1.10;

}

fair(三方算法)

fair:用于为响应时间分配服务器组内的服务器,他是按后端服务器的响应时间来分配请求,响应时间越短的越优先分配,需要第三方模块的支持nginx-upstream-fair-master

upstream server {

    fair;
    server localhost:81;
    servse localhost:82;
    server 192.168.1.10;

}

url_hash(三方算法)

url_hash:按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。注意:使用hash后不能使用weight。需要第三方模块的支持ngx_http_upstream_hash_module

upstream server {

    server localhost:81;
    server localhost:82;
    server 192.168.1.10;
    hash $request_uri;
    hash_method crc32;

}

最小连接数法

由于后端服务器的配置不尽相同,对于请求的处理有快有慢,最小连接数法根据后端服务器当前的连接情况,动态地选取其中当前积压连接数最少的一台服务器来处理当前的请求,尽可能地提高后端服务的利用效率,将负责合理地分流到每一台服务器。

upstream  server {

    least_conn;
    server localhost:81 weight=1;
    server localhost:82 weight=2;
    server 192.168.1.10;

}

常用的状态

1、down:表示当前server暂时不参与负载均衡。

2、backup:预留的备份机,当其他所有非backup机器出现故障或者繁忙的时候,才会请求backup机器,这台机器的访问压力最轻。

3、max_fails:允许请求的失败次数,默认为1,配合fail_timeout一起使用

4、fail_timeout:经历max_fails次失败后,暂停服务的时间,默认为10s(某个server连接失败了max_fails次,则nginx会认为该server不工作了。同时,在接下来的 fail_timeout时间内,nginx不再将请求分发给失效的server。)

upstream server {

    server localhost:81 weight=5 max_fails=3 fail_timeout=20s;
    server localhost:82 weight=3 max_fails=3 fail_timeout=20s;
    server 192.168.1.10 weight=4 max_fails=3 fail_timeout=20s;

}



支付宝支付
打赏
微信支付

联系我吧

有些人是会淡出你的生活的,有些人刻意不再联系,是因为你知道ta不需要你,或者从一开始就不是同一个初衷在一起度过,不主动联系很久也不见一次面,所有的感情也罢,都会败给时间和距离。因为时间是最无情,给你后悔的时刻却不会给你改过重来的机会。

位置

成都市 四川省 中国

联系电话

028-6406-0000

邮箱

y139w@163.com

企鹅

27572048

网址

https://www.weania.com