2016-09-06 68 views
0

我想在Linux服務器上擁有多個tomcat實例,並且每個實例都會部署一個Web應用程序ROOT。在沒有端口號的tomcat中訪問Web應用程序

在訪問應用程序時,URL格式爲:而我不希望最終用戶記住應用程序的IP地址或端口。

由於在Linux服務器中會使用多個實例,所以默認80端口(http)和443(https)不會有幫助。

這個想法是公開應用程序的DNS名稱,看起來像Apache HTTP服務器會幫助我解決這個問題。方法是對的嗎?

我認爲Apache服務器應該是每個Linux服務器一個,而每個tomcat實例一個。這可以證實嗎?

使用Apache Tomcat版本是8.5.4和計劃是去與Apache HTTP服務器版本2.4

回答

0

設置一個Apache HTTPD(或任何其他)作爲前服務器是一個不錯的辦法。

由於您不想在網址中使用:端口標記,因此您無法在每臺服務器上使用多個Apache HTTPD,至少在標準HTTP/HTTPS端口中不能使用一次在同一臺服務器上有多個HTTPD。

如果您打算同時使用http和https,則應爲每個虛擬主機創建至少一個虛擬主機。在使用SSL 443端口時,爲基於名稱的虛擬主機創建虛擬主機存在限制,因此如果您希望啓用多個HTTPS端口,則需要基於IP的虛擬主機。

This is the Apache HTTPD 2.4 virtual host documentation

然後,您可以使用mod_proxytomcat connector將請求轉發給每個Tomcat。我個人根據當前需求選擇一個或者其他,特別是如果Tomcat和Apache HTTPD中的上下文之間存在直接對應關係(在這種情況下,我使用AJP)或者需要重寫它(mod_rewrite):

httpd://apache.httpd/context1 -> tomcat:XXXX/context1 (ajp tomcat connector) 

httpd://apache.httpd/ -> tomcat:XXXX/context2 (mod_rewrite) 

httpd://apache.httpd/context3 -> tomcat:XXXX/context4 (mod_rewrite) 
相關問題