2009-03-02 56 views
37

我正在使用我的第一個Java站點。我在端口8080上運行Apache Tomcat,在端口80上運行Apache HTTPD。我可以訪問該網站的當前URL是(例如)123.4.5.6:8080。我希望刪除 URL中的端口號,然後我將該域指向新IP。如何從Apache重定向到Tomcat?

目前我只使用Apache的phpmyadmin,但我打算使用它的CGI腳本和其他的東西,一旦我找出mod_jk etc ...所以我不想改變Tomcat的端口到80轉關閉Apache。

我希望這是有道理的。

回答

41

要做的事情的正確方法是將Apache保持在80,Tomcat保持在8080,並使用插件(最好是mod_proxy)從Apache代理Tomcat。 mod_proxy只需要10分鐘就可以完成設置。

這個how-to非常簡單。

+0

我建議你這也太 - 最好不要有你的JVM以root身份運行,除非你有允許它綁定到端口80 – Alnitak 2009-03-02 20:13:02

15

正如您已經提到的那樣,完成這項工作的通常方法是使用Apache HTTPD的mod_jk轉發您想要由Tomcat處理的內容。

tomcat.apache.org上有一個Quick HowTo。您需要執行以下操作:

  • mod_jk.so複製到適用於Apache HTTPD的模塊目錄中。
  • 創建一個配置文件workers.properties
  • 在Apache中的httpd的httpd.conf,增加部分配置mod_jk
  • 確保Tomcat的被配置爲接受所述mod_jk協議,這通常是在端口8009

httpd.confJkMount的線條:

JkMount /examples/* worker1 

告訴Apache HTTPD哪些請求要轉發到Tomcat。

2

上述兩個有用的答案都很好,但我更喜歡mod_proxy而不是mod_jk。與mod_jk不同,不需要爲mod_proxy進行額外的安裝,而且安裝起來要容易得多。 mod_jk爲您提供了對Tomcat參數的詳細調整的更多控制權,但是如果您只是想從Apache到Tomcat的簡單重定向,則需要mod_proxy