首页 > 编程知识 正文

nginx负载均衡策略有哪些,它是如何实现的,nginx 均衡负载

时间:2023-05-03 08:39:10 阅读:280265 作者:1731

引子

1、服务器A配置比较差,如何将请求尽可能多的发往顶级服务器B和C?

2、服务器A连接次数最少,如何将请求发送给服务A?

3、如何保证服务器上的session会话?

4、怎么平均的让服务器接收请求?

5、如何保证服务的高可用,保证响应速度?

我们在使用upsteram策略时,可以指定。

Nginx内置共有四种负载均衡策略。

分别是轮询分配,权重分配,IP哈希分配,最少连接分配。

还可以使用第三方插件配置其他策略,比如fair,url_hash。

配置参数

在了解负载策略之前,先了解配置参数。

weight:权重,值越大,分配向该服务器的请求越多。

max_fails:最大失败次数,通常与fail_timeoout一起使用,在超时时间内的最大失败次数。。

fail_timeoout:连接失败超时时间,

backup:标记该服务器为备用服务器。

down:标记服务器停机。

轮询

Nginx默认的负载均衡策略,按照时间顺序,往下流。你一个,我一个,你一个,我一个。

使用方式

默认。

使用场景

服务器配置差不多,无状态请求服务。

权重

权重方式是在轮询策略基础上指定轮询的几率。

使用方式

weight=1。

我们在轮询的时候,其实每一个server后边都有一个默认值weight=1,所以说权重是在轮询基础上。

权重越大,分配到该服务器上的请求就越多。

使用场景

如果服务器硬件配置差别大,可以使用权重配置。

IP哈希

基于客户端IP进行分配,同一个客户端IP的请求,一直访问同一个服务器,这样解决session会话跨服务器问题。

使用方式

ip_hash。

使用这种方式时,就不要使用backup参数了。

使用场景

适用于有状态请求服务。

最少连接分配

某个服务器接收请求数较少,就把请求转发给它。

使用方式

least_conn。

使用场景

请求响应时间差别较大,个别服务器严重负载。

Fair

按照服务器的相应时间分配请求,响应时间短的优先分配。

使用方式

fair.

使用场景

网络环境比较复杂,宽带网络环境等因素影响。

url_hash

根据请求url的hash结果分配请求,同一个url,同一个资源请求分配到同一个机器,缓存资源,提升效率。

使用方式

url_hash;

使用场景

缓存场景。

总结

在实际使用中,并不是使用单一的某种策略,而是多种策略结合达到我们的业务场景的要求。一般情况下,加权轮询比较通用。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。