HAProxy是一种免费的、非常快速和可靠的解决方案,为基于TCP和HTTP的应用程序提供高可用性、负载平衡和代理。 它特别适用于非常高流量的网站,并且拥有世界上最受欢迎的网站用户。 多年来,它已经成为开源负载平衡器事实上的标准,现在已经与大多数主流的Linux发行版一起发布,并且经常在云平台中部署。 既然它不做广告,我们只知道管理员报告时使用它:-)
主要特点
每个版本都将其功能集放在前一个版本之上。向上兼容性是HAProxy的一个非常重要的方面,甚至1.5版本可以运行13年前版本1.0的配置。1.6版放弃了一些长期使用的关键字,并提出了替代方案。每个版本的最不同的功能如下:
- 版本1.5,2014年发布本版本进一步扩展了1.4,经过4年的努力:两侧SNI/NPN/ALPN和OCSP stapling的原生SSL支持,全面支持IPv6和UNIX套接字,full HTTP keep-alive 以获得对 NTLM 更好的支持,并且提高静态场的效率,HTTP/1.1压缩(deflate,gzip)来节省带宽,在两侧支持PROXY协议版本1和2,对请求或响应中的所有内容(包括有效载荷)的数据采样,ACLs可以使用任何匹配的方法任何输入样本图,并且动态ACL可以更新自支持计数器的 CLI stick-tables,以跟踪任何输入样例定制格式的日志、独特的id、头重写和重定向,改进的健康检查(SSL、脚本化的TCP、检查代理等等),更多的可扩展配置轻松支持数十万个后台和证书。
- 版本1.4,在2010年发布的这一版本中,它的新功能超过了1.3,其中大部分期待已久:client-side keep-alive 以减少客户端超负载网页的时间,TCP加速来帮助TCP堆栈每个连接节省几个数据包,对服务器上的并发连接数量更少的响应缓冲,RDP协议支持服务器粘性和用户过滤,基于源的粘性将源地址附加到服务器,更好的统计数据界面报告大量有用的信息,详细的健康状况检查报告统计信息和日志中的精确状态和响应,基于流量的健康状况,快速失效超过一定错误阈值的服务器,支持包括统计信息在内的任何请求的HTTP身份验证,并支持密码加密,CLI的服务器管理启用/禁用和更改服务器的权重,而不重新启动haproxy,基于ACL的持久性来维护或禁用基于ACL的持久性,无论服务器的状态如何,日志分析器都可以从以1Gbyte/s解析的日志中生成快速报告。
- 版本1.3,该版本于2006年发布,带来了许多新的特性和超过1.2的改进。其中内容切换根据任何请求条件选择服务器池,编写内容切换规则的ACL,更广泛的负载平衡算法选择更好的集成,内容检查允许阻止意外的协议,Linux下的透明代理,允许使用客户端的IP地址直接连接到服务器,内核TCP拼接在双方之间转发数据,无需复制,以达到多吉比特数据速率,分层设计分离套接字,TCP和HTTP处理,以实现更强大,更快速的处理和更容易的演进,快速和公平的调度程序,通过为某些任务分配优先级,优化协调环境的会话速率等,实现更好的QoS。
- 版本1.2自2006年以来一直在生产中使用,并提供了超过1.1的性能水平。它不再被维护,因为大多数用户早已切换到1.3。自从2002年以来一直在维护在线关键网站的版本1.1不再被维护。用户应升级到1.4或1.5。
已知HAProxy在以下操作系统/平台上可靠运行:
- Linux 2.4 on x86, x86_64, Alpha, Sparc, MIPS, PARISC
- Linux 2.6 /3.x on x86, x86_64, ARM, Sparc, PPC64
- Solaris 8/9 on UltraSPARC 2 and 3
- Solaris 10 on Opteron and UltraSPARC
- FreeBSD 4.10 - 10 on x86
- OpenBSD 3.1 to -current on i386, amd64, macppc, alpha, sparc64 and VAX (check the ports)
- AIX 5.1 - 5.3 on Power™ architecture