Как настроить 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>
Другие вопросы по тегам