Балансировщик нагрузки с apache httpd и wildfly для остальных веб-сервисов с mod_proxy

У меня есть балансировщик нагрузки apache с mod_proxy и wildfly (apache 224 и wildfly 9).

У меня в домене 4 сервера в домене, и балансировщик нагрузки отлично работает с приложением "hello world", а в диспетчере балансировщика я могу видеть, как запросы отправляются на каждый сервер.

Дело в том, что когда я использую приложение, которое имеет несколько веб-служб REST, я отправляю запрос методом GET и некоторыми заголовками для аутентификации, и каким-то образом приложение отвечает с ошибкой, когда я обращаюсь к нему через балансировщик нагрузки, но если я отправлю его прямо на сервер, он будет работать правильно.

моя конфигурация выглядит следующим образом

<VirtualHost *:80>
ProxyRequests Off
<Proxy balancer://mycluster>
    BalancerMember http://localhost:8080/ loadfactor=25
    BalancerMember http://localhost:8230/ loadfactor=25
    BalancerMember http://localhost:8330/ loadfactor=25
    BalancerMember http://localhost:8430/ loadfactor=25
</Proxy>
<Location /balancer-manager>
    SetHandler balancer-manager
    Order Deny,Allow
    Allow from all
</Location> 
<Location /test>
    Order allow,deny
    Allow from all
</Location> 
ProxyPass /test balancer://mycluster stickysession=JSESSIONID

Я тестирую с помощью почтальона и отправляю запросы методом get и заголовком для аутентификации: basic {base64 code} следующим образом:

http://127.0.0.1/test/myproject.ws/myproject/get_list?key=T11108101191&page=1

и это приводит к ошибке.

когда я попробую это:

http://127.0.0.1:8080/myproject.ws/myproject/get_list?key=T11108101191&page=1

Все идет хорошо

и когда я пробую выше, но с методом post, он получает ту же ошибку, что и в балансировщике нагрузки.

Есть идеи, что я делаю не так?

PS: я пытался вставить WEB-INF/web.xml проекта, но я все еще получаю ту же ошибку.

1 ответ

Благодаря Душану Баджичу он увидел мою проблему. В балансире я заканчивал маршрут с помощью "/", а когда я использовал ProxyPass, я начинал с "/", дублируя этот символ. Так или иначе, с приложением helloworld это работало правильно, но когда я передал параметры, это не удалось.

Новая конфигурация выглядит следующим образом:

<VirtualHost *:80>
    ProxyRequests Off
<Proxy balancer://mycluster>
    BalancerMember http://localhost:8080 loadfactor=25
    BalancerMember http://localhost:8230 loadfactor=25
    BalancerMember http://localhost:8330 loadfactor=25
    BalancerMember http://localhost:8430 loadfactor=25
</Proxy>
<Location /balancer-manager>
    SetHandler balancer-manager
    Order Deny,Allow
    Allow from all
</Location> 
<Location /test>
    Order allow,deny
    Allow from all
</Location> 

ProxyPass /test balancer://mycluster stickysession=JSESSIONID
</VirtualHost>
Другие вопросы по тегам