0

我正在尝试配置 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:

在此处输入图像描述

通过apache的mod_proxy负载均衡访问jboss的结果:

在此处输入图像描述

显然,由于这个问题,后者没有加载静态资源。

4

1 回答 1

0

我必须配置“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>
于 2016-04-29T19:28:48.093 回答