7.1.5 以HAProxy作为负载均衡器

HAProxy是一款可提供高可用性、负载均衡,以及基于TCP(第四层)和HTTP(第七层)应用的代理软件。

·HAProxy是完全免费的,借助HAProxy可以快速并可靠地提供基于TCP和HTTP应用的代理解决方案。HAProxy最主要的特点是性能,HAProxy特别适合于那些负载很大的Web站点,这些站点通常又需要会话保持或七层处理。HAProxy完全可以支持数以万计的并发连接。并且HAProxy的运行模式可以使它既简单又安全地整合到我们的网站系统架构中,同时还可以保护Web服务器不暴露到网络上(即通过防火墙80端口映射的方法)。HAProxy也是一款优秀的负载均衡软件,其优点如下:

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

·免费开源,稳定性也非常好,这点通过笔者做的一些项目就可以看出来,单HAProxy也表现得不错,其稳定性可以与硬件级的F5 BIG-IP相媲美。

·根据官方文档可知,HAProxy的单机带宽速度可以达到10Gbit/s,这个数值作为软件级负载均衡器是相当惊人的,具体可以参考其官方说明http://haproxy.1wt.eu/10g.html。

·HAProxy支持连接拒绝。因为维护一个连接打开的开销是很低的,但有时我们必须要限制攻击蠕虫(Attack Bots),也就是说通过限制它们的连接打开来防止它们的危害。这个功能已经拯救了很多被DDoS攻击的小型站点,这也是其他负载均衡器所不具备的。

·HAProxy支持全透明代理(已具备硬件防火墙的典型特点)。可以用客户端IP地址或任何其他地址来连接后端服务器。这个特性仅在Linux 2.4/2.6内核修补了cttproxy补丁后才可以使用,这个特性也使得为某些特殊服务器处理部分流量的同时又不修改服务器的地址成为了可能。

·自带强大的监控服务器状态的页面,这个也是笔者非常喜欢它的原因之一。

·从1.5版本开始,HAProxy原生地配置了SSL证书,不需要再和Stunnel配合使用了。

·HAProxy可支持虚拟主机,很多朋友说它不支持虚拟主机,这其实是个误区,通过测试可以得知,HAProxy是支持虚拟主机的。

综上所述,HAProxy是稳定和强大的,现在笔者多将其用于取代四层硬件防火墙作为网站的最外层接入,Nginx仍作为中间层的负载均衡层(或者直接简化掉这层),即HAProxy(LB)→Nginx(LB)(可选择)→Web集群。