Apache-2.2
Tomcat 7 + apache2 代理轉發導致網站資源失去
我有這個問題,我相信大多數人都應該看到。我正在使用 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>
- 在Tomcat中,我的網站安裝在*/tomcat7/webapps/xyz
- 我使用 ${pageContext.request.contextPath} 為我的 jsp 頁面中的所有資源定義基本路徑。
添加
ProxyPass /xyz/ http://www.example.com:8080/xyz/
在第一條 ProxyPass 線上方,你應該沒問題。