Apache ReverseProxy在返回错误页面时将上游服务器设置为错误

我们正在使用Apache LoadBalancer / ReverseProxy为我们的Web服务器提供故障转移。 目前我们遇到以下问题:

  • web服务调用返回HTTP状态码为500的错误
  • 由于ProxyErrorOverride设置为On,因此Apache会覆盖上游服务器的响应,并将其replace为默认的Apache错误页面。 我们添加了这个指令,以确保没有上游服务器的错误细节可以到达外部。
  • Apache将上游服务器设置为“ERR”状态一分钟
  • 后续的请求被发送到另一个服务器,这是不知道客户端会话,所以访问被拒绝(我们使用粘滞而不是共享的会话)

如果没有ProxyErrorOverride ,则会返回上游服务器的响应,负载平衡器不会将其设置为“ERR”状态。 我没有发现这种副作用logging,也没有解决方法。

有任何想法吗? 从我们的configuration文件中摘录一些内容:

  ProxyRequests Off # ProxyErrorOverride On <Proxy balancer://jboss> BalancerMember http://server1:8080 route=11 connectiontimeout=60 BalancerMember http://server2:8080 route=12 connectiontimeout=60 ProxySet stickysession=ROUTEID </Proxy> 

httpd -v返回

Server version: Apache/2.2.15 (Unix)