nginx学习记录-负载均衡策略

1. 负载均衡基本策略配置

1.1 weight(权重)配置

weight表示当前服务器承载的业务比例。假设现在有两台服务器A和B组成集群,但是A和B的配置不一样,A的性能更好些,那么此时我们希望服务器A能承载更多的业务,服务器B承载更少的业务,那么我们就可以给A和B分别配置相应的权重。

比如,图中我们可以给A和B分别配置weight=8及weight=2,表示外来的访问请求有80%的概率会由nginx转发至A服务器处理,有20%的概率由nginx转发至B服务器进行处理。通过这种简单的配置能更好地实现灵活的负载均衡。

1.2 down(下线)配置

down表示下线,即当一台服务器出故障时,为了不影响业务,我们配置down,将这台业务服务器下线,那么nginx就不会将请求转发至该服务器进行处理。

如图所示,如果我们将服务器A设置为down,则nginx服务器不会将请求转发到A,而是只会转发到B。这种策略配置实际上用的并不多,毕竟在生产环境中,很少主动让服务器下线的,被动下线更加用不到这个配置了。

1.3 backup(备份)配置

backup表示备份服务器,即当出现严重故障导致集群其它服务器都不可用时,就会启用备份服务器,保证业务的正常运行

如图,当A和B都不可用时,请求才会转到C,如果A和B有一台可用,则不会转到C

2. 负载均衡会话保持策略(了解即可)

上面的几种策略都存在一个问题,那就是当nginx进行代理转发时,每次都是转发到随机的一台服务器上,无法进行会话的保持。那么这里有几种策略可以进行会话的保持。以下几种策略仅作了解即可,实际生产环境中用的不多,因为无法动态上下线服务器,不够灵活。

2.1 ip_hash策略

根据客户端的IP地址转发同一台服务器,可以保持会话。但是这个实际并不常用,因为当客户端是移动端的情况下,IP是随时发生变化的,如果采取这种策略,会导致会话无法保持,达不到预期的效果。

2.2 least_conn

根据最少连接数转发请求,连接数少的服务器就优先转发。保证后端服务器负载更均衡,但是不支持服务器动态上下线(及时部署新的服务器)。

2.3 fair

根据后端服务器响应时间转发请求,优先转发至响应时间短的服务器。这种策略容易受网络波动影响,造成流量都倾斜到单台服务器上。

2.4 url_hash

根据访问的url地址转发到同一台服务器,实现定向流量转发。这个实际上无法保持会话,因为实际上同一个用户访问不同的url可能会转发到不同的服务器上。因此,这个策略的使用适用于访问固定资源(不在同一服务器)的场景

3. 简单例子,配置权重,下线和备份

这里简单配置以下权重weight,下线down和备份backup,这里我们只有两台服务器A和B,我们先配置一台权重为8,另一台权重为2,如下,配置好后使用systemctl reload nginx重新加载nginx配置

此时,访问大概率是被转发到192.168.66.218上,仅有少部分请求会转发到192.168.66.1上。

此时,我们修改配置将192.168.66.1作为备份

则所有请求都会转发至192.168.66.128

若是停掉192.168.66.128的服务,则所有请求则会转发至192.168.66.1

再次修改配置,开启192.168.66.128的服务,并让192.168.66.128下线:

会发现,此时只会访问192.168.66.1.

  • 24
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值