как настроить http uri healthcheck для балансировщика ws с Apache Httpd - PullRequest
1 голос
/ 14 февраля 2020

Мне нужно настроить Healthcheck для моего балансировщика нагрузки ws в Apache httpd. я использую mod_proxy_wstunnel для туннелирования websocket и mod_balancer для балансировки нагрузки между 2 серверами. Я использую дополнения к 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 Ответ

0 голосов
/ 17 февраля 2020

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

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

...