apache - 基于健康检查 URL 的热备故障转移 Apache 模块
问题描述
是否有推荐的 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/
推荐阅读
- python - 根据条件删除字典列表中的重复项
- javascript - Vuex如何提交localStorage字符串来存储
- wordpress - 将多个关键字传递给 Search API
- laravel - stancl/tenancy:如何从全局租户数据库中获取数据?
- matlab - Matlab apriltag alddiaz / MATLAB_AprilTag3 工具箱安装
- apache-spark - pyspark - PYTHONPATH 可以用于工作节点上的 Python 解释器来查找 Python 模块吗?
- android - WhatsApp/Messenger 克隆方法
- ios - Flutter 图像选择器卡在相机上
- c - GDT 段重新加载失败
- python-3.x - OpenCV - ArUco:detectMarkers 未能识别照片中的一些标记