我们目前使用 HAproxy 来平衡图像和应用程序服务器的负载,但我们尚未设置故障转移。我们目前仅在其中一个图像框上安装了 haproxy,然后将请求路由到需要的地方。现在,下周我们将搬到新的托管服务器(14 台服务器,是时候停止租赁硬件了)。
我们有 5 个前端应用服务器。我是否可以在其中两个机器上安装 haproxy,使用共享 IP 进行故障转移,然后简单地将 apache 移动到端口 9000 或其他任意端口?我们已经为接下来几个月的 colo 预算了,所以如果可以的话,我希望避免为 HAproxy 配备两个专用机器。
5 个应用服务器包含 apache 和 sphinx。这些应用服务器与我们的 mysql 服务器和不断增长的 cassandra 集群进行通信。
答案1
HAProxy 并不关心 Web 服务器是否在本地计算机上。将 Apache 添加到同一台计算机并使用不同的端口是完全有效的。将来有一天,您可能想要专用 HAProxy,但目前可能还不需要(HAProxy 目前对 Stack Overflow 的资源使用率非常低)。
除了多个端口之外,另一个选择是在每台机器上设置多个 IP 并绑定到这些 IP。您可以绑定到:
- 通配符 IP 和特定端口
- 通配符端口和特定 IP
- 通配符端口和通配符 IP
- 特定 IP 和特定端口
另外,要绑定到特定的 VIP (虚拟故障转移 IP),您将需要执行以下操作/etc/sysctl.conf
:
net.ipv4.ip_nonlocal_bind=1