是否有建议的Apache模块/配置用于实现以下行为?
app01
,除非运行状况检查失败(http://app01/load-balancer
不返回200 OK
)app02
运行状况检查失败时,流量才转到备用服务器app01
app01
运行状况检查再次成功时,所有流量都将被引回到app01
mod_proxy
能够执行此行为吗?
mod_proxy_hcheck
似乎能够基于页面检查运行状况,但它是为负载平衡服务器之间的流量而设计的,不适用于主备用服务器和热备用服务器。
我可以使用以下虚拟主机配置来完成所需的工作:
ProxyHCExpr ok200 {%{REQUEST_STATUS} =~ /^[200]/}
ProxyHCTemplate tomcat_health_check hcinterval=5 hcpasses=1 hcfails=3 hcmethod=HEAD hcuri=/load-balancer hcexpr=ok200
<Proxy balancer://tomcat_app_tier>
BalancerMember https://app01:8443 lbset=0 hctemplate=tomcat_health_check
BalancerMember https://app02:8443 lbset=1 hctemplate=tomcat_health_check
ProxySet stickysession=JSESSIONID|jsessionid lbmethod=byrequests
</Proxy>
# Allows Apache to connect to Tomcat over SSL and ignores cert warning
SSLProxyEngine on
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
ProxyPass / balancer://tomcat_app_tier/ nocanon
ProxyPassReverse / balancer://tomcat_app_tier/