Apache-2.2

如何在同一個 url 上同時配置 apache 和 tomcat?

  • September 20, 2011

假設我有一個註冊的 URLmywebsite.com指向我的伺服器,它有一個公共 IP 地址。

我想同時執行 tomcat 和 apache 來服務頁面(即,apache 上的一些靜態頁面和 tomcat 上的一些動態頁面,如 jsp 等……)。

為了簡單起見,我們假設 apache 在 80 上監聽,tomcat 在 8080 上監聽。

我聽說過mod_proxy。是否可以請求mywebsite.com去 apache 和mywebsite/loggedin去 tomcat?如果是,應該如何配置以及在哪裡配置?謝謝。

我建議使用mod_jk–it 往往比 更具體mod_proxy,更容易調試。您可以轉發上下文。即,如果我有webapp1webapp2在 Tomcat 上執行,並且我images在 Apache 上有一個目錄,這將起作用:

<VirtualHost *:80>
   ...
   JKMount /webapp1/* ajp13
   JKMount /webapp2/* ajp13
   Alias /images "/some/local/dir"
</VirtualHost>

這也更容易配置,並且大多數發行版已經在其本地包管理器中包含包。希望這可以幫助!

mod_proxy 與 tomcat 配合得很好。通過 mod_proxy 代理到 tomcat 有 2 種方法。

  1. http - 所以 tomcat 作為 http 伺服器執行,apache 通過 HTTP 與 tomcat 對話
  2. mod_proxy_ajp - 這使用 ajp 協議(也被 mod_jk 使用)。在這種情況下,apache 通過具有更好性能的二進制協議與 tomcat 對話。

mod_proxy_ajp 是 apache 自帶的一個包,而 mod_jk 需要下載和編譯。但是 mod_jk 通常會先獲得新功能,並且有更多選擇。如果您的設置並不復雜…… mod_proxy_ajp 是要走的路。在這種情況下,在 Tomcat 中,您需要將 tomcat 配置為具有 AJP 連接器。而且您不需要 server.xml 中的 http 連接器。對於 apache,指令可能像這樣簡單:

ProxyPass / 登錄 ajp: //127.0.0.2: 8009 / 登錄 

帶有 ajp 範例的代理文件在這裡:http ://httpd.apache.org/docs/2.2/mod/mod_proxy.html

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