как настроить http uri healthcheck для балансировщика WS с Apache Httpd

Мне нужно настроить проверку работоспособности для моего балансировщика нагрузки ws в Apache httpd. Я использую mod_proxy_wstunnel для туннелирования веб-сокетов и mod_balancer для балансировки нагрузки между двумя серверами. Я использую дополнительно mod_proxy_hcheck для проверки, доступны ли 2 сервера. конфигурация следующая:

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.

1 ответ

В документации модуля mod_proxy_hcheck сказано, что он выполняет HTTP-запрос. После проверки файла mod_proxy_hcheck.c( Apche 2.4.39) выяснилось, что этот случай не рассматривается. Код не проверяет, является ли схема ws, и не заменяет ее при создании запроса.

Было бы здорово иметь возможность добавлять абсолютный uri для hckeck или автоматически заменять используемый протокол, если это не http.

Другие вопросы по тегам