Как настроить mod_proxy_html с mod_proxy_balancer для разрешения относительных URL
Я пытаюсь настроить mod_proxy_html так, чтобы мои страницы могли разрешать относительные URL. Apache работает нормально с моей конфигурацией, но относительные URL не разрешены.
файл.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyHTMLEnable On
Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
<Proxy balancer://mycluster>
BalancerMember "http://localhost:8080"
BalancerMember "http://localhost:8180"
ProxySet stickysession=ROUTEID
</Proxy>
ProxyPass / balancer://mycluster
ProxyHTMLURLMap / balancer://mycluster
RequestHeader unset Accept-Encoding
</VirtualHost>
Результат прямого доступа к jboss:
Результат доступа к jboss через балансировку нагрузки apache mod_proxy:
Очевидно, что из-за этой проблемы в последнем не загружаются статические ресурсы.
1 ответ
Мне пришлось настроить "ProxyPassReverse" и "ProxyHTMLURLMap", и в конце настроенных URL-адресов требовался конечный слеш. Моя конфигурация закончилась так:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
<Proxy balancer://mycluster/>
BalancerMember "http://localhost:8080"
BalancerMember "http://localhost:8180"
ProxySet stickysession=ROUTEID
</Proxy>
ProxyPreserveHost On
ProxyPass / balancer://mycluster/
ProxyPassReverse / balancer://mycluster/
ProxyHTMLURLMap balancer://mycluster/ /
SetOutputFilter proxy-html
RequestHeader unset Accept-Encoding
</VirtualHost>