什么是负载量?
客户端发送的、Nginx反向代理服务器接收到的请求数量,就是负载量。
请求数量按一定的规则进行分发到不同的服务器处理的规则,就是均衡规则。
什么叫负载均衡?
将服务器接收到的请求按照规则分发的过程,叫做负载均衡。负载均衡分为以下两种:
- 硬件负载均衡(硬负载,如F5负载均衡,相对成本较高,但数据稳定和安全可以得到很好的保障)
- 软件负载均衡(是利用现有的技术结合主机硬件实现的一种消息队列分发机制)
Nginx支持的负载均衡调度算法:
- weight轮询(默认):
将接收到的请求按顺序逐一分配到后端服务器,给不同的服务器设置一个权重值(weight),用于调整不同的服务器上请求的分配率,权重越大,被分配的几率越大。如果使用过程中某一台服务器宕机,Nginx会自动将该服务器剔除出队列,请求受理情况不受影响。
- ip_hash
每个请求按照发起客户端的ip的hash结果进行匹配,固定的ip地址的客户端总会访问同一个服务器,在一定程度上解决了集群部署环境的Session共享问题。
- fair
响应时间短且处理效率高的服务器分配到请求的概率高,反之的服务器被分配的请求少。注意Nginx默认不支持fair算法,需要安装upstream_fair模块。
- url_hash
按照访问的url的hash结果分配请求,每个请求的url会指向固定的某个服务器,可以在Nginx作为静态服务器的情况下提高缓存效率。注意Nginx默认不支持url_hash算法,需要安装hash软件包。
参考:https://mp.weixin.qq.com/s/wZaQm4mEF8JQCNUqqftNjQ