HAProxy

可靠、高性能的TCP/HTTP负载平衡器。(The Reliable, High Performance TCP/HTTP Load Balancer.)

Github stars Tracking Chart

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

Overview

Name With Ownerhaproxy/haproxy
Primary LanguageC
Program languageMakefile (Language Count: 10)
Platform
License:Other
Release Count347
Last Release Namev3.0-dev9 (Posted on 2024-04-27 09:37:03)
First Release Namev1.0.0 (Posted on )
Created At2018-04-09 15:17:42
Pushed At2024-04-27 07:38:37
Last Commit At2024-04-27 09:37:03
Stargazers Count4.5k
Watchers Count119
Fork Count763
Commits Count22.2k
Has Issues Enabled
Issues Count2448
Issue Open Count297
Pull Requests Count0
Pull Requests Open Count0
Pull Requests Close Count91
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

The HAProxy documentation has been split into a number of different files for
ease of use.

Please refer to the following files depending on what you're looking for :

  • INSTALL for instructions on how to build and install HAProxy
  • BRANCHES to understand the project's life cycle and what version to use
  • LICENSE for the project's license
  • CONTRIBUTING for the process to follow to submit contributions

The more detailed documentation is located into the doc/ directory :

  • doc/intro.txt for a quick introduction on HAProxy
  • doc/configuration.txt for the configuration's reference manual
  • doc/lua.txt for the Lua's reference manual
  • doc/SPOE.txt for how to use the SPOE engine
  • doc/network-namespaces.txt for how to use network namespaces under Linux
  • doc/management.txt for the management guide
  • doc/regression-testing.txt for how to use the regression testing suite
  • doc/peers.txt for the peers protocol reference
  • doc/coding-style.txt for how to adopt HAProxy's coding style
  • doc/internals for developer-specific documentation (not all up to date)
To the top