我需要在Apache httpd中为我的ws负载均衡器配置healthcheck。我使用mod_proxy_wstunnel实现websocket隧道,使用mod_balancer实现两台服务器之间的负载平衡。我正在使用额外的mod_proxy_hcheck来验证两台服务器是否可用。配置如下:
Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
ProxyHCExpr ok2 {%{REQUEST_STATUS} =~ /^[2]/}
<Proxy balancer://trackingwsbalancer>
BalancerMember wss://{{ rpa_fqdn_tracking1 }}:8443 route=1 hcmethod=GET hcexpr=ok2 hcuri=/trackingproxy_advanced/actuator
BalancerMember wss://{{ rpa_fqdn_tracking2 }}:8443 route=2 hcmethod=GET hcexpr=ok2 hcuri=/trackingproxy_advanced/actuator
ProxySet stickysession=ROUTEID
ProxySet lbmethod=bybusyness
</Proxy>问题是运行状况检查总是失败,因为后面的请求是:
wss ://{{ rpa_fqdn_tracking1 }}:8443/trackingproxy_advanced/actuator.我想让它成为
htpps ://{{ rpa_fqdn_tracking1 }}:8443/trackingproxy_advanced/actuator 为了能够正确处理hcexpr的健康检查响应
我将非常感谢任何为uri运行状况检查配置协议的想法。
发布于 2020-02-17 17:10:21
mod_proxy_hcheck模块的文档说明它执行一个HTTP请求。在检查了mod_proxy_hcheck.c( Apche 2.4.39)之后,似乎没有涵盖此情况。代码不会检查方案是否为ws,并且在创建请求时也不会替换它。
如果能够为hckeck添加一个绝对uri,或者如果它不是http,则自动替换所使用的协议,这应该是很棒的。
https://stackoverflow.com/questions/60216807
复制相似问题