Назад | Перейти на главную страницу

Балансировщик прокси-сервера Apache не работает должным образом

У меня есть два экземпляра сервера wildfly на моем сервере Linux, и я хочу сбалансировать нагрузку на обоих, используя балансировщик прокси-сервера apache. Но балансировщик не работает должным образом, отправляя запросы на серверы wildfly один за другим в циклической форме, но ни один из них не работает должным образом. На моем веб-сайте я вижу страницу входа в систему, но после добавления учетных данных она не перенаправляется на домашнюю страницу, а в журналах я вижу, что она правильно вошла в систему. Если я остановлю один сервер, все будет работать правильно

Вот моя конфигурация прокси

 ProxyRequests Off

ProxyPreserveHost On
ProxyVia On

 <Proxy balancer://mycluster>
                # WebHead
                BalancerMember http://x.y.z.z:8080
                # WebHead2
                BalancerMember http://x.y.z.z:8280 


        </Proxy>

ProxyPass /test balancer://mycluster/test 
ProxyPassReverse /test balancer://mycluster/test 

Скажите, пожалуйста, что в этом не так и как я могу это исправить

Вероятно, происходит то, что вы входите в систему на Server1 (x.y.z.z: 8080), но следующий запрос идет на Server2 (x.y.z.z: 8280), который не знает вашего сеанса на Server1.

Есть два основных способа исправить это.

  1. Совместное использование состояния сеанса между серверами
    То, как вы это делаете, зависит от вашей серверной технологии (PHP, Java, Pyton), но в основном вы должны использовать общее расположение (Redis, SQL, MemCached и т. Д.) Для хранения информации о сеансе для обе серверов, так что любое данное соединение может перейти к любому серверу и быть распознано.

  2. Включите "липкие сеансы" в конфигурации mod_proxy
    Опять же, фактические детали того, как это сделать, зависят от вашей серверной технологии, но в общих чертах вам нужно добавить stickysession пара ключ / значение к вашему ProxyPass директива, как указано в документы.