我们遇到了这个问题,当然可以通过从配置中删除发生故障的服务器来解决,但是我很好奇httpd为什么会继续转发请求。
环境:Redhat 6.10上的Apache httpd 2.2.15。 我们已将server3和server4添加到我们的设置中。不幸的是,它们之间没有网络连接,但是httpd仍然尝试转发请求。
就我阅读的文档https://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass而言,httpd不应将请求转发给不回复CPING的服务器。 我想念什么?
上述文档的摘录: Ping属性告诉Web服务器在转发请求之前先通过ajp13连接发送CPING请求。
<Proxy balancer://app_servers>
BalancerMember ajp://server1:8009 ping=5 loadfactor=1 retry=0 timeout=300 connectiontimeout=250ms route=app-server1
BalancerMember ajp://server2:8009 ping=5 loadfactor=1 retry=0 timeout=300 connectiontimeout=250ms route=app-server2
BalancerMember ajp://server3:8009 ping=5 loadfactor=1 retry=0 timeout=300 connectiontimeout=250ms route=app-server3
BalancerMember ajp://server4:8009 ping=5 loadfactor=1 retry=0 timeout=300 connectiontimeout=250ms route=app-server4
ProxySet lbmethod=byrequests maxattempts=1 nofailover=On timeout=5 stickysession=JSESSIONID|jsessionid
</Proxy>