nginx 之负载均衡

createh54周前 (05-26)技术教程22

一、负载均衡的作用

负载均衡:分摊到多个操作单元上进行执行,和它的英文名称很匹配。就是我们需要一个调度者,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡。

负载均衡这里面涉及的东西相对也是比较多的,理论就不说太多了,网上,书上很多,今天我们就利用Nginx服务器来实现一个简单的负载均衡

二、负载均衡算法概念

  • 轮询法:将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。当其中一台服务连接不上后自动跳过连接下一个服务。
  • 加权轮询法(权重):不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重,让其处理更多的请;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载,加权轮询能很好地处理这一问题,并将请求顺序且按照权重分配到后端。
  • 源地址哈希法(IP_hash):根据获取客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号。采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。
  • 最小连接数法:由于后端服务器的配置不尽相同,对于请求的处理有快有慢,最小连接数法根据后端服务器当前的连接情况,动态地选取其中当前积压连接数最少的一台服务器来处理当前的请求,尽可能地提高后端服务的利用效率,将负责合理地分流到每一台服务器。
  • 随机法:通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。
  • 加权随机法:与加权轮询法一样,加权随机法也根据后端机器的配置,系统的负载分配不同的权重。不同的是,它是按照权重随机请求后端服务器,而非顺序。

三、各种算法实现方式

(一)、轮询法


注意:

1、在轮询中,如果服务器down掉了,会自动剔除该服务器

2、缺省配置就是轮询策略

3、此策略适合服务器配置相当,无状态且短平快的服务使用。

(二)、加权轮询法(权重)


注意:

1、权重越高分配到需要处理的请求越多。

2、此策略可以与least_conn或者ip_hash结合使用。

3、此策略比较适合服务器硬件配置差别比较大的情况。

(三)、源地址哈希法(ip_hash)


注意:

1、在nginx 版本1.3.1 之前不能再ip_hash中使用权重(weight)。

2、ip_hash不能与backup同时使用。

3、此策略适合有状态服务,比如session。

4、当有服务需要剔除,必须手动down掉。


(四)、最小连接数

四、其他参数

相关文章

网站打开慢?这15个细节决定了你的 Core Web Vitals 分数

说实话,现在做SEO,已经不是“内容+外链”就能稳赢的时代了。Google 在 Core Web Vitals(核心网页指标)上线之后,用户体验这件事,直接被摆到了第一线。你内容再好,页面加载慢、跳动...

职场必看!性能测试响应很慢怎么排查?

大多数的性能测试工作人员分为以下三个阶段:1、出了问题看资源,资源占用如果很高,报以窃喜的心态,恩,发现了,原理是资源瓶颈。2、资源没有出现瓶颈,通过一些技术手段分析,发现是组件的配置文件有问题,例如...

网站加载慢?让你的网站腾飞起来,LiteSpeed部署

说起LiteSpeed 还得说起我的小站,<开心洋葱网>,虽然流量不大,但是访问是真的慢,无奈经费有限,那就只能在服务器加速上动起心思来。之前一直听说 QUIC 访问网站的速度会让你感觉飞...

Nginx读书笔记-搭建高可用集群

NGINX作为反向代理服务器可以实现负载均衡,同时也可以作为静态文件服务器,它的特点就是并发支持大,单机可同时支持3万并发,现在很多网站都把NGINX作为网关入口来统一调度分配后端资源。但是如果NGI...

Nginx从入门到放弃05-访问日志与日志切割

设置访问日志当我们访问nginx服务时,nginx会记录日志,nginx日志分两种,一种是访问日志,一种是错误日志,访问日志记录在”access.log”文件中,错误日志记录在”error.log”文...

后端实践:Nginx日志配置(超详细)

作者:antwang 来源:https://juejin.im/post/5aa09bb3f265da238f121b6c 前言Nginx日志对于统计、系统服务排错很有用。Nginx日志主要分为两种:...