2016-04-29 69 views
0

我正在嘗試配置mod_proxy_html,以便我的頁面可以解析相對URL。 Apache使用我的配置正常運行,但相對URL未解析。如何使用mod_proxy_balancer配置mod_proxy_html以解析相對URL

.conf文件

<VirtualHost *:80> 
    ServerAdmin [email protected] 

    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的直接:

enter image description here

訪問結果通過Apache的mod_proxy負載均衡的JBoss:

enter image description here

顯然,由於這個問題,後者中沒有加載靜態資源。

回答

0

我必須配置「ProxyPassReverse」和「ProxyHTMLURLMap」,並且在配置的URL末尾需要一個尾部斜線。我的配置結束如下:

<VirtualHost *:80> 
    ServerAdmin [email protected] 

    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>