负载均衡实施 应该因地制宜

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介:

在项目实施中发现,有些公司是做宣传网站或资讯类网站的,服务器均置于国内,他们对集群这 块了解的并不深,而且要求也很简单,只要求1+2架构。在初期我使用的是 Nginx作为负载均衡器,后期发现HAProxy更加稳定,而且它自带强大的监控页面功能,所以我全部换成了HAproxy作为最前端的负载均衡器了; 由于我越来越喜欢它了,在这里请允许我单独介绍其优点。

HAProxy是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,HAProxy是完全免费的、借助HAProxy可以快速并且可靠的提供基于TCP和HTTP应用的代理解决方案。
HAProxy最主要的特点是性能优越,HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。 HAProxy完全可以支持数以万计的并发连接。并且HAProxy的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上(即通过防火墙80端口映射的方法)。
更重要的是,HAProxy也是一款优秀的负载均衡软件,其优点如:
1.免费开源,稳定性也是非常好,这个可通过我做的一些小项目可以看出来,单Haproxy也跑得不错,稳定性可以与硬件级的F5相媲美;
2.根据官方文档,HAProxy可以跑满10Gbps-New benchmark of HAProxy at 10 Gbps using Myricom's 10GbE NICs (Myri-10G PCI-Express),这个数值作为软件级负载均衡器是相当惊人的;
3.HAProxy 支持连接拒绝 : 因为维护一个连接的打开的开销是很低的,有时我们很需要限制攻击蠕虫(attack bots),也就是说限制它们的连接打开从而限制它们的危害。 这个已经为一个陷于小型DDoS攻击的网站开发了而且已经拯救了很多站点,这个优点也是其它负载均衡器没有的。
4.HAProxy 支持全透明代理(已具备硬件防火墙的典型特点): 可以用客户端IP地址或者任何其他地址来连接后端服务器. 这个特性仅在Linux 2.4/2.6内核打了cttproxy补丁后才可以使用. 这个特性也使得为某特殊服务器处理部分流量同时又不修改服务器的地址成为可能。
5.HAProxy现多于线上的Mysql集群环境,我们常用于它作为MySQL(读)负载均衡;
6.自带强大的监控服务器状态的页面,实际环境中我们结合Nagios进行邮件或短信报警,这个也是我非常喜欢它的原因之一;
7.HAProxy支持虚拟主机,许多朋友说它不支持虚拟主机是错误的,通过测试我们知道,HAProxy是支持虚拟主机的。

另外,提到Nginx作负载均衡器,这个由于我自己也比较喜欢它的强大的正则处理功能和其强悍的抗并发能力,所以我在自己的博客及 51cto.com上推行它的Nginx+Keepalived,并成功用此架构帮许多客户实施他们的网站,Nginx对网络的依赖性非常小,理论上只要 ping得通它就就能实现它的负载均衡能力,这一点跟LVS不一样。我去年在一家公司准备实施LVS+Keepalived时,发现它的网络环境太复杂 了,每台机器都是7、8静态路由,网络中还有二个网关,LVS实现不了转发功能;最后还是换成了Nginx+Keepalived。

现在我觉得Nginx作为最前端的负载均衡并不是一个非常理想的选择,一个大型的网站或系统的 话,可以存在多级代理,比如我们最前端可以用F5或 LVS来作为网站或系统的入口,让它们来顶外部的高并发流量,而Nginx由于其强大的正则处理能力,可以作为中层代理,一来可以作为F5/LVS的补 充,节约大量成本,这种做法也是张宴兄推荐的,架构图也很简单,即F5/LVS -->Nginx(多台)-->web集群。

大家可以看一下基于架构的好处有:
一、不需要担心单Nginx负载均衡器crash的问题,随便怎么挂都可以;
二、Nginx作为F5的补充,利用其强大的upstream模块和正则,可以轻松实现动静分离;
三、压缩可以通过nginx做,这样,后台应用服务器不管是apache、resin、lighttpd甚至iis或其他古怪服务器,都不用考虑压缩的功能问题。
四、方便的运维管理,在各种情况下可以灵活制订方案;
五、即使没有squid群组,Nginx现在可以做为优秀的反向代理加速软件了。

我现在做的项目网站,原理跟上面类似,只不过用的是LVS代替了F5,这个更节约资金了,拓朴图如下所示:


现在的负载均衡均衡技术是多样化的,我们应该根据其特点做到因地制宜,取长补短,最大限度的发挥它们的优点,将我们的网站或系统架构调优到一个新的高度。





本文转自 抚琴煮酒 51CTO博客,原文链接:http://blog.51cto.com/yuhongchun/608542,如需转载请自行联系原作者

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
2月前
|
存储 负载均衡 监控
如何利用Go语言的高效性、并发支持、简洁性和跨平台性等优势,通过合理设计架构、实现负载均衡、构建容错机制、建立监控体系、优化数据存储及实施服务治理等步骤,打造稳定可靠的服务架构。
在数字化时代,构建高可靠性服务架构至关重要。本文探讨了如何利用Go语言的高效性、并发支持、简洁性和跨平台性等优势,通过合理设计架构、实现负载均衡、构建容错机制、建立监控体系、优化数据存储及实施服务治理等步骤,打造稳定可靠的服务架构。
54 1
|
8月前
|
负载均衡 算法 应用服务中间件
面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
字节跳动面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
166 0
|
8月前
|
负载均衡 应用服务中间件 API
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
199 4
|
1月前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
88 3
|
7月前
|
缓存 负载均衡 算法
解读 Nginx:构建高效反向代理和负载均衡的秘密
解读 Nginx:构建高效反向代理和负载均衡的秘密
142 2
|
6月前
|
负载均衡 算法 应用服务中间件
nginx自定义负载均衡及根据cpu运行自定义负载均衡
nginx自定义负载均衡及根据cpu运行自定义负载均衡
122 1
|
6月前
|
运维 负载均衡 算法
SLB与NGINX的异同是什么
SLB与NGINX的异同是什么
597 2
|
8月前
|
负载均衡 应用服务中间件 nginx
解决nginx配置负载均衡时invalid host in upstream报错
在Windows环境下,配置Nginx 1.11.5进行负载均衡时遇到问题,服务无法启动。错误日志显示“invalid host in upstream”。检查发现上游服务器列表中,192.168.29.128的主机地址无效。负载均衡配置中,两个服务器地址前误加了"http://"。修正方法是删除上游服务器列表和proxy_pass中的"http://"。问题解决后,Nginx服务应能正常启动。
602 4
解决nginx配置负载均衡时invalid host in upstream报错
|
7月前
|
JSON 负载均衡 应用服务中间件
Nginx反向代理与负载均衡
Nginx反向代理与负载均衡