我正在开发一个由 httpd 服务器反向代理 http 流量的基础设施。我们希望继续使用 httpd(而不是考虑 Nginx 等),因为我们在这个平台上配置了许多虚拟主机。
现在我想在反向代理部分添加 HA 和负载平衡功能。如果我创建一个主动-主动集群,我需要一个像 DNS 循环这样的解决方案,我不想将其作为我的首选(因为它很难获得)。
配置一个 HAProxy 主动-被动集群(使用浮动 IP),负载平衡(在 TCP 模式下,级别 4)一个 httpd 主动-主动集群,执行真正的 http(s) 反向代理,这是一个好的解决方案吗?通过这种方式,我将实现以下目标:
- HA。HAProxy 具有容错能力,因此 httpd 的
- 负载平衡。Httpd 是负载平衡的(主动-主动)。HAProxy 不是(单个主机处于活动状态),但我假设它在处理流量方面比 httpd 更具扩展性,一个节点就足够了
- 有了 HAProxy 在 tcp 中的负载平衡,我可以将所有的 http 和 https 配置留在 httpd 端。
这种方法有什么缺点吗?或者有更好的解决方案吗?
答案1
赛,
听起来你已经想出了一个合理的解决方案。你正在描述一个典型的应用程序集群 HA 负载均衡器部署。HAProxy 可以在你需要时为你提供很大的灵活性,而且 TCP 直通模式既好又简单。
唯一的问题是可靠地维护 HAProxy 集群会增加复杂性。我猜你会使用 Keepalived?
在 Loadbalancer.org 这里我们目前使用 Heartbeat (HA-Linux),但很快将转向我们自己的 Pulse HA 系统,支持跨多个负载均衡器的主动/主动。