首页 > 解决方案 > 基于健康检查 URL 的热备故障转移 Apache 模块

问题描述

是否有推荐的 Apache 模块/配置来实现以下行为?

是否mod_proxy能够执行此行为?

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

标签: apachemod-proxy

解决方案


我能够使用以下虚拟主机配置完成我需要的工作:

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/

推荐阅读