Apache-2.2

絕對網址不適用於 Apache2 AJP 代理 Tomcat

  • November 8, 2011

我似乎不知道如何正確配置 ReverseProxy。返回的 URL 都是根目錄“/”,而不是“/tomcat”,並且只顯示主“預設”tomcat 頁面。我使用 Apache2 作為 Tomcat 的前端,具有以下代理規則:

ProxyPass /tomcat ajp://127.0.0.1:8009/
ProxyPassReverse /tomcat ajp://127.0.0.1:8009/

我還嘗試在 Tomcat 的 AJP 連接器設置中使用 ProxyName。使用 mod_rewrite 代理 AJP 請求也給出了相同的結果。

Apache error.log 給出了以下行(嘗試從它自己的根目錄載入圖像):

File does not exist: /var/www/asf-logo-wide.gif, referer:

編輯:AJP 通過 mod_jk 工作,但在使用子文件夾時仍然遇到與 HTTP 相同的問題。

問題是您的 tomcat 伺服器使用它知道的路徑在 HTML 中嵌入連結。不是代理伺服器的路徑。(從您的 *.gif 日誌條目中獲得此資訊)

ProxyPassReverse 不會修改 HTML 中的連結。它僅修改 HTTP 標頭。

為了讓它工作,您需要在應用程序的上下文中使用適當的位置和路徑配置 tomcat。您可能需要將 webapp.war 文件重命名為 ROOT.war 並將任何上下文配置更改為“/”。

你可以試試這篇文章,它解釋了使用 ProxyPassReverse 的適當方法:

http://www.humboldt.co.uk/2009/02/the-mystery-of-proxypassreverse.html

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