Модуль Apache для горячего резервирования при отказе на основе URL проверки работоспособности - PullRequest
0 голосов
/ 15 октября 2019

Существует ли рекомендуемый модуль / конфиг Apache для реализации следующего поведения?

  • Весь трафик приложения отправляется на основной сервер app01, если проверка работоспособности не проходит (http://app01/load-balancer не возвращает 200 OK)
  • Трафик направляется на резервный сервер app02 только при сбое app01 проверки работоспособности
  • Когда app01 проверка работоспособности повторяется успешно, весь трафик направляется обратно на app01

Может ли mod_proxy выполнить это поведение?

Похоже, что mod_proxy_hcheck может проверять работоспособность на основе страницы, но она предназначена для балансировки нагрузки трафика между серверами, а не для основного и горячего резервных серверов.

1 Ответ

0 голосов
/ 16 октября 2019

Я смог выполнить то, что мне было нужно, используя следующую конфигурацию vhost:

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/
...