基于运行状况检查URL的Apache Apache热备用故障转移模块

问题描述 投票:0回答:1

是否有建议的Apache模块/配置用于实现以下行为?

  • 除非所有应用程序流量都流向主服务器app01,除非运行状况检查失败(http://app01/load-balancer不返回200 OK
  • 仅当app02运行状况检查失败时,流量才转到备用服务器app01
  • app01运行状况检查再次成功时,所有流量都将被引回到app01

mod_proxy能够执行此行为吗?

mod_proxy_hcheck似乎能够基于页面检查运行状况,但它是为负载平衡服务器之间的流量而设计的,不适用于主备用服务器和热备用服务器。

apache mod-proxy
1个回答
0
投票

我可以使用以下虚拟主机配置来完成所需的工作:

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/
© www.soinside.com 2019 - 2024. All rights reserved.