通過 IP 瀏覽時,Tomcat 的索引頁面在站點上顯示
我有一個 Tomcat 5.0.27-2 伺服器(我知道……舊的)和 Apache 2.0.46-77 伺服器正在執行和服務應用程序目前執行良好。我們遇到的問題是,如果我導航到http://www.mysite.com/index.jsp,我會看到預期的 JSP。但是,如果我導航到(出於發布目的而拆分)http://1.2.3.4 /index.jsp(該站點的外部 IP 地址被 NAT 到 192.168.0.20),我會看到預設的“Tomcat 歡迎”jsp。另一個花絮,如果我訪問 http://192.168.0.20 /index.jsp,我會看到正確的站點。只有在通過 NAT 時,我才能看到 tomcat 頁面。我確定它在 server.xml 或 web.xml 中,但我不知道是什麼。
在您說“升級您的 tomcat”之前,我知道我們需要這樣做,但這是一個緊迫的問題,我們沒有時間進行遷移和全面測試。最終,我們將升級到 Tomcat6,只是不是今天。
我們在伺服器上託管了幾個站點,但對於這個站點,server.xml 具有以下內容:
<Host name="mysite.net" appBase="/mysite_root/ROOT" > <Alias>1.2.3.4</Alias> <Context path="" docBase="" debug="0" reloadable="true" crossContext="true" /> </Host> <Host name="www.mysite.net" appBase="/mysite_root/ROOT" > <Alias>1.2.3.4</Alias> <Context path="" docBase="" debug="0" reloadable="true" crossContext="true" /> </Host> <Host name="mysite.com" appBase="/mysite_root/ROOT" > <Alias>1.2.3.4</Alias> <Context path="" docBase="" debug="0" reloadable="true" crossContext="true" /> </Host> <Host name="www.mysite.com" appBase="/mysite_root/ROOT" > <Alias>1.2.3.4</Alias> <Context path="" docBase="" debug="0" reloadable="true" crossContext="true" /> </Host>
當您讓 Tomcat 回答主機的 IP 地址本身而不是 127.0.0.1 時,就會發生這種情況。
如果您的目標是讓 Apache 作為您的前門並將所有請求代理到 Tomcat,那麼您應該使 Tomcat 綁定到 localhost,而不是主機的 IP 地址。然後你可以
mod_proxy
用來轉發請求,而不是讓任何人直接點擊 Tomcat。這在 Apache 文件中得到了很好的描述並且很常見,所以改變它應該不會太難。
它可能配置為基於名稱的託管… server.xml 中是否有帶有 appBase 屬性的 Host 標記?如果是這樣,請檢查它的設置和預設值。