Meu problema era não sobre o tempo limite : a verificação de integridade começou a funcionar conforme desejado depois que eu defini um ProxyHCExpr
.
Eu observei isso observando as solicitações feitas à página de status nos nós de back-end: somente depois que eu defini um ProxyHCExpr
eles chegaram mais ou menos regularmente a cada segundo. Note que eu não preciso usar a expressão, adicionando hcexpr=23
, mas uma expressão precisa ser definida de qualquer maneira para que o mod_proxy_hcheck faça seu trabalho. Eu teria esperado que ou poderia ser omitido com segurança ou que apachectl -t
lançaria um erro ou aviso.
Nos documentos , diz:
hcexpr
Name of expression, created via ProxyHCExpr, used to check response headers for health. If not used, 2xx thru 3xx status codes imply success
Com base nisso, eu supus que essa configuração ProxyHCExpr
também seria opcional. Infelizmente, não estava funcionando como desejado até eu configurá-lo. Meu arquivo de configuração foi de:
<Proxy "balancer://tomcat">
BalancerMember "http://10.0.0.1:8080" hcmethod=HEAD hcinterval=1 hcpasses=9 hcuri=/app/status
BalancerMember "http://10.0.0.2:8080" hcmethod=HEAD hcinterval=1 hcpasses=9 hcuri=/app/status
</Proxy>
Para:
ProxyHCExpr 23 {%{REQUEST_STATUS} =~ /^[23]/}
<Proxy "balancer://ifis-tomcat-col">
BalancerMember "http://10.0.0.1:8080" hcmethod=HEAD hcinterval=1 hcpasses=9 hcuri=/app/status
BalancerMember "http://10.0.0.2:8080" hcmethod=HEAD hcinterval=1 hcpasses=9 hcuri=/app/status
</Proxy>
Esta foi a configuração vista do gerenciador de balanceamento:
MaxMembers StickySession DisableFailover Timeout FailoverAttempts Method Path Active
2 [2 Used] (None) Off 0 1 bybusyness /app Yes
Worker URL Route RouteRedir Factor Set Status Elected Busy Load To From HC Method HC Interval Passes Fails HC uri HC Expr
http://10.0.0.1:8080 1.00 0 Init Ok 0 0 0 0 0 HEAD 1000ms 9 (0) 1 (0) /app/status
http://10.0.0.2:8080 1.00 0 Init Ok 0 0 0 0 0 HEAD 1000ms 9 (0) 1 (0) /app/status
Então ficou:
MaxMembers StickySession DisableFailover Timeout FailoverAttempts Method Path Active
2 [2 Used] (None) Off 0 1 bybusyness /app Yes
Worker URL Route RouteRedir Factor Set Status Elected Busy Load To From HC Method HC Interval Passes Fails HC uri HC Expr
http://10.0.0.1:8080 1.00 0 Init Ok 0 0 0 0 0 HEAD 1000ms 9 (0) 1 (0) /app/status
http://10.0.0.2:8080 1.00 0 Init Ok 0 0 0 0 0 HEAD 1000ms 9 (0) 1 (0) /app/status
Health check cond. expressions:
Expr name Expression
23 %{REQUEST_STATUS} =~ /^[23]/