Tomcat 7 + apache2代理转发导致网站资源丢失

我有这个问题,我相信大部分人都应该看到。 我正在使用Apache2的mod_proxy_html转发Web请求到Tomcat。 请求转发到tomcat,但tomcat服务器无法find网站资源(图像,风格,字体等)。 问题是,当使用进入subdomain.example.com时,Tomcat相信资源path应该在: http : //subdomain.example.com/xyz/images/images1.jpg 。

这导致了问题,因为在现实中,因为http请求变成:http: //www.example.com :8080/xyz/xyz/images/images1.jpg,上下文名称“xyz”出现两次。 因此,tomcat无法定位图像文件。 该文件实际上是在www.example.com:8080/xyz/images/images1.jpg

我相信这个设置是相当标准的,但我不明白大多数人如何解决这个path问题?

这是我的设置:1.在我的apache2 virtualHostconfiguration文件,我有这样的设置:

<VirtualHost *:80> ServerName subdomain.example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://www.example.com:8080/xyz/ ProxyPassReverse / http://www.example.com:8080/xyz/ </VirtualHost> 
  1. 在Tomcat中,我的网站安装在* / tomcat7 / webapps / xyz中

  2. 我使用$ {pageContext.request.contextPath}为我的jsp页面中的所有资源定义基本path。

 ProxyPass /xyz/ http://www.example.com:8080/xyz/ 

在第一个ProxyPass线以上,你应该没问题。