Tomcat多個WebServer配置:
1、說明
試想下,實際項目中,我們只有一臺服務器,並且在上面只部署一個Web Server服務(這裏是Tomcat),我們將多個Web項目同時部署在這個Web Server中,此時,這些項目運行一切正常。而當我們調整了某個項目時,需要重新打包發佈,需要重啓Tomcat服務時,問題出現了:因爲多個項目部署在同一個Tomcat中,重啓時這些Web項目都會停止服務,等待Tomcat重啓成功,恢復正常狀態。此刻正在使用其中某個項目產品時,就不能訪問和操作了,這是不允許的。
所以,我們需要建立多個Tomcat服務,把各個Web項目分別部署在一個Tomcat中,做到互不影響,這樣就可以解決上面的問題了。
PS:
上面的辦法可以解決各個項目彼此影響的問題,但是建議在項目開發階段,爲了節省相關成本時所採用的方案;實際在大數據量情況下,推薦將各個項目或服務,分別部署到獨立的服務器中。
2、步驟
建立多個Tomcat服務原理比較簡單,不做單獨介紹,具體查看下面的實現步驟接口。針對不同的Tomcat版本改動大同小異,這裏我們以Tomcat8.0爲例說明如何構建多個服務:
A、環境變量配置
首先,我們以兩個Tomcat服務爲例,分別將Tomcat(免安裝版本)放入不同的位置,我的是默認的8080位置:/tomcat下,而8090的位置:/tomcat/8090,那麼,這裏我們需要配置兩個CATALINA_HOME環境變量,它們的名字分別爲CATALINA_HOME和CATALINA_HOME2,內容分別爲:/tomcat和/tomcat/8090,配置完成之後,記得source /etc/profile使其生效,具體的環境變量配置,這裏不贅述,請查看相關資料或留言。
內容如下:
CATALINA_HOME=/tomcat
CATALINA_HOME2=/tomcat/8090
B、連接/關閉配置
我們定位到對應的Tomcat位置,修改它的server.xml配置,具體如下:
8080端口Tomcat:
關閉端口:
<Server port="8005"shutdown="SHUTDOWN">
連接端口:
<Connector port="8080"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
8090端口Tomcat:
關閉端口:
<Server port="8006"shutdown="SHUTDOWN">
連接端口:
<Connector port="8090"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
PS:
多個Tomcat的關閉和連接端口必須是不同的,其它配置可以相同。
C、CATALINA_HOME
接下來,我們需要修改對應Tomcat下bin中的catalina.sh(windows下爲.bat),將所有的CATALINA_HOME都修改爲CATALINA_HOME2,默認的8080對應的Tomcat的catalina.sh保持默認即可。
3、驗證
定位到對應的Tomcat位置,執行bin/startup.sh啓動兩個Tomcat服務,然後訪問下面的地址,它們通過不同端口號區分。
A、8080端口
地址:
http://localhost:8080
結果:
B、8090端口
地址:
http://localhost:8090
結果: