Apache-2.2

Tomcat 7 + apache2 代理轉發導致網站資源失去

  • September 2, 2014

我有這個問題,我相信大多數人都應該看到。我正在使用 apache2 的 mod_proxy_html 將 web 請求轉發到 tomcat。請求轉發到 tomcat,但 tomcat 伺服器無法找到網站資源(圖像、樣式、字型…等)。問題是,當使用輸入 subdomain.example.com 時,Tomcat 認為資源路徑應該在: 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

我相信這個設置是相當標準的,但我不知道大多數人是如何解決這個路徑問題的?

這是我的設置: 1. 在我的 apache2 virtualHost 配置文件中,我有這個設置:

<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 頁面中的所有資源定義基本路徑。

添加

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

在第一條 ProxyPass 線上方,你應該沒問題。

引用自:https://serverfault.com/questions/625708