Nginx服务器的六种负载均衡策略详解
一、关于Nginx的负载均衡 在服务器集群中,Nginx起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器。详情请查看我的另一篇博客。 二、Nginx负载均衡策略 负载均衡用于从“upstream”模块定义的后端服务器列表中选取一台服务器接受用户的请求。一个最基本的upstream模块是这样的,模块内的server是服务器列表:
在upstream模块配置完成后,要让指定的访问反向代理到服务器列表:
这就是最基本的负载均衡实例,但这不足以满足实际需求;目前Nginx服务器的upstream模块支持6种方式的分配: 负载均衡策略 轮询默认方式weight权重方式ip_hash依据ip分配方式least_conn最少连接方式fair(第三方)响应时间方式url_hash(第三方)依据URL分配方式在这里,只详细说明Nginx自带的负载均衡策略,第三方不多描述。 1、轮询 最基本的配置方法,上面的例子就是轮询的方式,它是upstream模块默认的负载均衡默认策略。每个请求会按时间顺序逐一分配到不同的后端服务器。 有如下参数: fail_timeout与max_fails结合使用。max_fails设置在fail_timeout参数设置的时间内最大失败次数,如果在这个时间内,所有针对该服务器的请求都失败了,那么认为该服务器会被认为是停机了, fail_time服务器会被认为停机的时间长度,默认为10s。backup标记该服务器为备用服务器。当主服务器停止时,请求会被发送到它这里。down标记服务器永久停机了。注意:
2、weight 权重方式,在轮询策略的基础上指定轮询的几率。例子如下: #动态服务器组upstream dynamic_zuoyu { server localhost:8080 weight=2; #tomcat 7.0 server localhost:8081; #tomcat 8.0 server localhost:8082 backup; #tomcat 8.5 server localhost:8083 max_fails=3 fail_timeout=20s; #tomcat 9.0} 在该例子中,weight参数用于指定轮询几率,weight的默认值为1,;weight的数值与访问比率成正比,比如Tomcat 7.0被访问的几率为其他服务器的两倍。 注意:
3、ip_hash 指定负载均衡器按照基于客户端IP的分配方式,这个方法确保了相同的客户端的请求一直发送到相同的服务器,以保证session会话。这样每个访客都固定访问一个后端服务器,可以解决session不能跨服务器的问题。
注意:
4、least_conn 把请求转发给连接数较少的后端服务器。轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果。
注意: 此负载均衡策略适合请求处理时间长短不一造成服务器过载的情况。 5、第三方策略 第三方的负载均衡策略的实现需要安装第三方插件。 ①fair 按照服务器端的响应时间来分配请求,响应时间短的优先分配。
②url_hash 【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。 |
-
一、关于Nginx的负载均衡 在服务器集群中,Nginx起到...[详细]
-
隐藏版本号 http{ server_tokensoff; } 经常会有针对...[详细]
-
使用Nginx+Tomcat+Keepalived 搭建高性能高可用性负载均衡集群
在互联网项目中,往往面临着高用户量、高并发的问题,...[详细]
-
注意这几点,轻轻松松配置 Nginx + Tomcat 的集群和负载均衡
Tomcat 集群是当单台服务器达到性能瓶颈,通过横向扩...[详细]
-
导引 Tomcat,这只3脚猫,大学的时候就认识了,直到现...[详细]
-
学到老活到老 前端圈一直很新,一直要不停的学习,而...[详细]
-
Http协议Servlet Http协议 什么是协议 双方在交互、通...[详细]
-
混合云,用好是馅饼,用不好是陷阱。如果混合云解决方...[详细]
-
DNS 欺骗是 DNS 服务器记录更改导致恶意重定向流量的...[详细]
-
这一年,5G从未来快速走到了我们眼前。此前十年中,以...[详细]