nginx之负载均衡

Posted 程序员的事儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx之负载均衡相关的知识,希望对你有一定的参考价值。




一、负载均衡的作用

    负载均衡:分摊到多个操作单元上进行执行,减少单台服务器的负载压力,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡。

    负载均衡这里面涉及的东西相对也是比较多的,今天我们就利用nginx服务器来实现一个简单的负载均衡

二、负载均衡算法概念

  • 轮询法:将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。当其中一台服务连接不上后自动跳过连接下一个服务。

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

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

  • 随机法:通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。

  • 加权随机法:与加权轮询法一样,加权随机法也根据后端机器的配置,系统的负载分配不同的权重。不同的是,它是按照权重随机请求后端服务器,而非顺序。

三、各种算法实现方式

(一)、轮询法


nginx之负载均衡

注意:

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

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

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

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


nginx之负载均衡

注意:

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

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

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

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


nginx之负载均衡

注意:

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

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

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

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


(四)、最小连接数

nginx之负载均衡

四、其他参数





3、


以上是关于nginx之负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

Nginx详解十五:Nginx场景实践篇之负载均衡

Nginx负载均衡之二配置负载均衡

Linux之nginx负载均衡

Nginx学习笔记06负载均衡之负载均衡介绍

系统架构之负载均衡

负载均衡 之 nginx+consul+consul template