Балансировщик нагрузки с 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>