HAProxy可靠、高性能的 TCP/HTTP 负载均衡器 |
|
镜像站点:主站 语言:English |
快速链接最新消息最新消息 描述 性能 可靠性 安全性 文档 GitHub 上的项目 下载源码 / 文档 软件包 / 镜像 / 发行版 在线演示 他们在用! 企业版功能 第三方扩展 商业支持 联系方式 外部链接 讨论 Slack 频道 邮件列表 编码风格 待解决问题 已知缺陷 签名密钥 HATop:Ncurses 界面 Herald:负载反馈代理 haproxystats:统计信息收集 基于 Alpine 的 Docker 镜像 基于 Debian 的 Docker 镜像 基于 RHEL 的 Docker 镜像 Debian/Ubuntu 软件包 性能软件包 网站服务使用 HTTP 版本: 传输协议: 网络: 感谢您的支持! |
最新版本
最新消息2025年12月3日:HAProxy Technologies 的性能软件包
2025年11月26日:HAProxy 3.3.0 发布
2025年6月24日:HAProxy 3.2.0 发布
2025年2月26日:HAProxyConf 2025 早鸟注册
描述HAProxy 是一款免费、非常快速且可靠的反向代理,为 TCP 和基于 HTTP 的应用程序提供高可用性、负载均衡和代理服务。它特别适用于流量极高的网站,并为世界上访问量最大的网站中的很大一部分提供支持。多年来,它已成为事实上的标准开源负载均衡器,现在大多数主流 Linux 发行版都附带它,并且通常默认部署在云平台中。由于它不自我宣传,我们只有在管理员报告使用它时才知道 :-) HAProxy 核心团队并行维护多个版本。自 1.8 版本以来,每年都会发布两个主要版本。第一位数字通常表示重大变更(配置格式等),但实际上很少改变。第二位数字表示新功能。这两者构成一个分支。这些数字之后还会有一个额外的数字,表示错误修复版本。 核心团队投入了大量精力将修复程序向后移植到旧版本,同时非常小心地避免破坏任何东西。因此,在一个分支内保持最新非常重要,即最后一位数字尽可能大。 版本号为偶数的分支被称为“LTS”(“长期支持”),在其发布后维护 5 年。在此期间,它们将收到发布后发现的错误的修复。这些分支面向追求极致稳定性、不希望过于频繁地验证新版本但仍希望接收修复的普通用户。 版本号为奇数的分支仅被称为“稳定版”,它们面向技术娴熟的用户,这些用户更喜欢经常升级以受益于现代功能,并且在出现问题时能够回滚。这些版本的维护时间在 12 到 18 个月之间。这个时间很短且特意不严格,以便根据用户反馈决定维护周期,并使这些版本不会最终出现在嵌入式产品中。如果需求合理且操作被认为风险足够小,可能会将一些功能向后移植到这些版本。 每个处理过生产环境的人都知道,当需要计划和向上级通报任何操作时,现场升级组件是很困难的。因此,HAProxy 核心团队不坚持要求用户升级,不会要求某人切换到新分支(除非他们要求该分支中的某个功能),但通常会要求用户在报告问题前使用其分支的最新版本重新检查,因为没有人喜欢第二次排查同一个问题。通常建议使用操作系统自带的版本,只要它遵循官方维护周期。根据预期的稳定性或风险暴露程度,一些用户可能希望在更新可用时立即更新,而另一些用户可能更愿意等待几周到一个月,以确保更新对他们来说足够可靠。 以下是每个主要版本变更的简要历史
性能如在 AWS 基于 ARM 的 Graviton2 上进行的测试所示,HAProxy 在多线程下扩展性非常好,并被证明能够通过 SSL 达到每秒 200 万次请求,转发流量达到 100 Gbps。 这得益于其事件驱动的架构,使其能够极快地响应 I/O 事件;其在 SMP 机器上通过轻量级多线程实现的并行性;一个在低延迟和高吞吐量之间不断平衡的任务调度器;以及在每个架构层面上对资源节约的持续追求。这些努力在开发时间上花费了一些成本,但用户立即感受到了价值,他们能够在一次又一次的升级后减少机器数量。对于绝大多数常见负载,HAProxy 进程根本不会被注意到,这往往让其用户忘记了它的存在,有时会导致关于极旧版本的问题。 请查阅此部分以获取有关架构细节和一些性能测试结果的更多信息。
可靠性 - 自 2002 年以来一直保持高流量网站在线HAProxy 首先以其极其稳健而闻名。核心团队的开发人员可能会对自己修复的某些错误感到恼火,但这是因为他们的工作是看到所有这些错误。大多数用户报告称从未遇到过任何一次崩溃,并声称 HAProxy 是他们基础设施中最坚固的部分。找到 HAProxy 进程已运行超过 3 年的机器一点也不稀奇! 不过,这一切并非偶然。我们在这方面付出了大量努力,以提供对正在发生的事情的出色可观测性,以及对不良行为的惊人数量的保护措施。HAProxy 内置了许多对不可接受情况(不可能的条件、无限循环等)的检查,这些情况在其他产品中可能导致服务中断或数据损坏,但在 HAProxy 中会立即导致崩溃并转储问题。这种严谨得到了回报,因为大多数用户从未遇到过这样的问题,这要感谢那些遇到问题并提供了有用报告、帮助及早修复问题的少数人。 开发过程也鼓励高质量,并采用长期维护周期:版本由编写新功能的同一批开发人员维护 5 年。这鼓励他们编写高质量的代码和符合最高标准的提交信息。所有开发人员在开发过程中和合并代码前都会使用并运行一个回归测试套件,并且之后借助持续集成(CI)系统在各种平台上运行。 “吃自己的狗粮”原则在这里同样适用:haproxy.org 运行在最新的开发版本上。这通常有助于在每个主要版本发布前发现一两个错误。但此外,它还给开发团队带来了持续的压力,要求他们发布自己有信心的东西。 该程序从早期设计开始就非常保守地使用资源,因此在启动时会计算大量设置,并对套接字、连接、流等的数量强制执行许多限制,从而保证任何已开始的处理都将完成。
安全性 - 默认强化在部署软件负载均衡器时,安全性是一个非常重要的问题,因为它运行在网络边缘,接收所有肮脏的流量。可以强化操作系统,限制开放端口和可访问服务的数量,但负载均衡器本身仍然暴露在外。统一且不花哨的编码风格旨在避免在编写或审查代码时常见的陷阱。在处理未验证数据时,追求一些高标准。避免或替换非可移植的函数和行为不可靠的函数。输入数据在底层很早就被清理。资源使用受到仔细控制。通过仔细的释放函数,代码中禁止出现悬空指针。这些标准已经帮助消除了代码本身的大量不确定性。 由于零错误是不合理的,该产品采取了许多防御措施,例如 chroot、权限降级、禁止 fork、严格的协议验证、对不可能状态的检查以及在检测到违规情况下的详细跟踪等。所有这些通常会导致利用真实错误的尝试失败或可能崩溃。这些措施必须由用户使用足够有说服力的命令来特意禁用,以便定期质疑这样做的原因。
完整下载矩阵在这里,您将找到按类型和版本快速访问可下载内容的途径。只需单击所需的格式即可访问该格式的内容。
请注意,官方文档是纯文本格式,直接来自项目,但由 Thierry Fournier 维护的 Lua 参考手册除外。HTML 版本是由 Cyril Bonté 出色的文档转换器 dconv 从文本版本自动转换而来的。Pavel Lang 也为 1.4 和 1.5 版本创建了一个能够生成 PDF 的面向 TeX 的变体,但已不再维护。
商业支持和可用性如果您认为自己没有时间和技能来设置和维护一个免费的负载均衡器,或者如果您正在寻求商业支持以满足您的客户或老板,您有以下选择:
联系方式如有任何问题或意见,请随时联系我们
有些人经常问是否可以捐款,所以我为此设立了一个 Paypal 账户。如果您想捐款,请点击这里。 Libera.Chat 上已为 HAProxy 开设了一个 IRC 频道
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||