我正在运行 Apache HTTP Server 作为负载均衡器,后面有 3 个应用程序节点。以下是示例配置,
<Proxy "balancer://apicluster">
BalancerMember http://node1.com/api
BalancerMember http://node2.com/api
BalancerMember http://node3.com/api
</Proxy>
ProxyPass /api balancer://apicluster
ProxyPassReverse /api balancer://apicluster
如果一个节点出现故障并且请求无法到达它,Apache 可以将请求路由到工作节点,这样就不会中断服务。
今天发生了一个棘手的问题,一个节点处于故障状态,但并非完全无法访问,任何路由到该节点的请求都会卡在那里直到超时。问题是由于某些基础设施问题和节点主机本身无法访问。在这种情况下,请求仍被 Apache 路由到有问题的节点,并最终导致用户失败。我可以在 Apache 中做些什么来避免这种情况?