nginx 负载均衡算法

1、轮询(RR,默认负载均衡算法)

按顺序选择组内服务器处理请求。若某个服务器在处理请求时出错,则请求会被顺次交给组内的下一个服务器,以此类推,直到返回正常的响应为止。
若组内所有的服务器都出错,则返回最后一个服务器的处理结果。

2、加权轮询(WRR)

指定轮询几率 weight,根据 weight 将请求分发到不同的服务器。weight 和访问比率成正比,用于后端服务器性能不均的情况。

例:
upstream bakend {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}

3、ip_hash

根据请求者 ip 的 hash 值将请求分发到不同的服务器,可以保证来自同一 ip 的多次请求定向到组内同一台服务器上,可以解决 session 问题,保证客户端与服务器之间建立稳定的会话。

注意:

1、ip_hash 是根据客户端IP地址分配服务器,因此在整个系统中,Nginx 服务器应该是处于最前端的服务器,这样才可以获取到客户端IP地址,否则它得到的IP地址将是位于它前面的服务器地址,从而就会产生问题;
2、只有当服务器处于无效(down)的状态时,客户端请求才会被下一个服务器接收和处理;
3、使用ip_hash后不能使用weight;

例:
upstream bakend {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}

4、least_conn

选取活跃连接数与 weight 比值最小者为请求处理者,即:server_conns/weight。

注意:

1、上一次已选的 server 和已达到最大连接数的 server 不在选择的范围;
2、若 server_conns/weight 最小值的服务器有多台,则采用加权轮询选择权重值大的服务器。

例:
upstream leastconn {
least_conn;
server 192.168.1.10 weight=3;
server 192.168.1.20 weight=2;
server 192.168.1.30 weight=1;
}

5、第三方调度算法

5.1、url_hash

根据请求的 url 的 hash 值将请求分发到不同的服务器,当后台服务器为缓存时效率高。

注意:

1、在 upstream 中加入 hash 语句,hash_method 是使用的 hash 算法;
2、server 语句中不能使用 weight;
3、需要安装第三方 ngx_http_upstream_hash_module 模块。

例:
upstream backend {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}

5.2、fair

根据后台响应时间来分发请求,响应时间短的分发的请求多。

注意:

1、需要安装第三方 upstream_fair 模块。

例:
upstream backend {
server server1;
server server2;
fair;
}

server 参数

1、weight:默认为1。weight越大,负载的权重就越大;
2、down:当前 server 不参与负载;
3、backup:只有当其它所有非 backup 机器忙或者 down 时,才请求 backup 机器,因此这台服务器压力会最轻;
4、max_fails:在一定时间范围内,主机最大失败次数。超过则认为主机已挂掉,默认为1。
5、fail_timeout:有两个作用,一是:max_fails 指令中所提到的”一定时间范围内“;二是:当一台服务器被认为是无效(down)时,无效的持续时间。在这个时间内不再检查该服务器的状态,并一直认为它是无效(down)的。默认设置为10s。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值