barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

среда, 19 октября 2011 г.

Apache2 mod_proxy: ProxyPass, использование balancer и проблемы с передачей оставшейся части пути backend-серверу

Проблема:
Используется mod_proxy для балансировки нагрузки (проксирования https запросов на 2 backend-сервера). В качестве пути для балансировки используется путь "/load-balancer/", при обращении по которому запрос отправляется на "https://192.168.0.101:8000/services/" или "https://192.168.0.101:8001/services/". Соответствующая настройка httpd следующая:

SSLProxyEngine on
ProxyPass /load-balancer/ balancer://myhttpsbalancer/
ProxyPassReverse /load-balancer/ https://192.168.0.101:8000/services/
ProxyPassReverse /load-balancer/ https://192.168.0.101:8001/services/
<Proxy balancer://myhttpsbalancer>
BalancerMember https://192.168.0.101:8000/services/ loadfactor=50
BalancerMember https://192.168.0.101:8001/services/ loadfactor=50
</Proxy> 

Вроде бы всё верно, но почему-то все запросы на поддиректории директории "/load-balancer/" приводят к обращению всё к той же корневой директории "/services/" backend-сервера. Т.е. при выполнении запроса на путь "/load-balancer/echo?wsdl" видим все равно тоже, что и для запроса "/load-balancer/".

Решение:
В директиве BalancerMember в конце URL убрать слеш. Т.е. получится конфигурация:

SSLProxyEngine on
ProxyPass /load-balancer/ balancer://myhttpsbalancer/
ProxyPassReverse /load-balancer/ https://192.168.0.101:8000/services/
ProxyPassReverse /load-balancer/ https://192.168.0.101:8001/services/
<Proxy balancer://myhttpsbalancer>
BalancerMember https://192.168.0.101:8000/services loadfactor=50
BalancerMember https://192.168.0.101:8001/services loadfactor=50
</Proxy> 

Комментариев нет:

Отправить комментарий