1. 程式人生 > >Tomcat配置多個Service,多個同名的應用執行在一個tomcat下

Tomcat配置多個Service,多個同名的應用執行在一個tomcat下

網站專案中有時候會碰到,每個網站一個網站後臺程式,偏偏因為某種原因,這後臺程式的名稱還是一樣的,比如都叫 app.war,這樣如果有2個或以上網站需要用各自的app.war,那麼就需要安裝多個tomcat,資源浪費比較大。也不好管理。有沒有一種可能,將這幾個app.war放到一個tomcat下執行呢? 答案是可以的。

修改%TOMCAT_HOME%/conf/server.xml 
將Service元素複製一份,直接貼上到原來那個Service元素之後,即 …..這一部分複製下來,放到第一個 之後,然後再繼續修改剛剛新增的部分配置資訊:

按照下列步驟修改第二個Service元素:

將Service元素的name屬性改為Catalina2 
將第一個Connector元素的port屬性由8080改為其他未使用的埠,如8081 
將第二個Connector元素的port屬性由8009改為其他未使用的埠,如8010 
將Engine元素的name屬性由Catalina改為Catalina2,與Service的name屬性保持一致 
將Host元素的appBase屬性由webapps改為webapps2 
建立目錄 
%TOMCAT_HOME%/conf/Catalina2/localhost 
%TOMCAT_HOME%/webapps2 
將%TOMCAT_HOME%/webapps/ROOT複製到%TOMCAT_HOME%/webapps2

這樣就有兩個工程放置的目錄,一個是webapp 一個是webapp2,這裡面都可以放你的war工程,而且如果工程名字相同都沒有問題。它們之間是沒有干擾的。

當然你可以配置了多個 Service 元素。就需要修改Tomcat的記憶體引數,防止記憶體溢位。如果你是linux系統,修改 %TOMCAT_HOME%/bin/catalina.bat 
-Xms //初始堆大小 
-Xmx //最大堆大小 
-XX:PermSize //初始永久區大小 
-XX:MaxPermSize //最大永久區大小 
放到有效配置的第一行

set JAVA_OPTS=-server -Xincgc -Xms1024m -Xmx1024m -XX:MaxPermSize=256m

如果你是windows系統,去修改登錄檔吧, 
HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\tomcat6.0\Parameters\Java 
右邊的 Options 裡面一條配置佔一行 前後不能有空格。 
然後重啟。