1. 程式人生 > >Linux同時執行多個Tomcat

Linux同時執行多個Tomcat

背景:起初是這樣的:在一個tomact裡放了好多個web專案,啟動過,過一段時間,發現不能正常訪問,現象就是感覺tomcat已經關閉了。檢視日誌發現:tomcat報錯了<java.lang.OutOfMemoryError:PermGen space>,這才知道記憶體溢位了。FK!!!原來的放的專案太多了,這樣就需要配置多個tomcat。

每個tomcat都有自己的埠和監聽的埠,那麼要多個執行,就必須使用不同的埠,具體怎麼操作呢,看下面:

1)需要JDK作為支撐,這裡就不做處理了,我這裡的目錄:/usr/local/jdk7

2)首先下載對應的linux下的tomcat版本,存放於2個目錄,這裡以/usr/local/tomcat01和/usr/local/tomcat02為例,多個以此類推。這裡tomcat01為了統一,就也把預設配置改掉了。

3)首先,將tomcat02的根目錄配置到/etc/profile中,如下:

export JAVA_HOME=/usr/local/jdk7
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

CATALINA_BASE=/usr/local/tomcat01
CATALINA_HOME=/usr/local/tomcat01
export CATALINA_BASE CATALINA_HOME

CATALINA_2_BASE=/usr/local/tomcat02
CATALINA_2_HOME=/usr/local/tomcat02
export CATALINA_2_BASE CATALINA_2_HOME

TOMCAT_HOME=/usr/local/tomcat01
export TOMCAT_HOME
TOMCAT_2_HOME=/usr/local/tomcat02
export TOMCAT_2_HOME

配置完成後,執行source /etc/profile 使之生效。

4)修改對應tomcat下conf目錄下的server.xml檔案,指定其對應埠號。

tomcat01的,修改如下:第一個地方:修改關閉監聽埠,預設8005,修改為8051,當然你可以改成其他任意沒有用過的埠號。

<Server port="8051" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
第二個地方:修改http監聽埠,預設8080,這裡改成8081,我這裡加了下其他配置。
<Connector
         port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"
         URIEncoding="UTF-8"
         minSpareThreads="1000"
         maxSpareThreads="4000"
         enableLookups="false"
         disableUploadTimeout="true"
         connectionTimeout="20000"
         acceptCount="4000"
         maxThreads="5000"
         maxProcessors="5000"
         minProcessors="100"
         useURIValidationHack="false"
         compression="on"
         compressionMinSize="2048"
        compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
         redirectPort="8443" />
第三個地方:修改 AJP 的對應埠,預設8009,修改為9080:
<Connector port="9080" protocol="AJP/1.3" redirectPort="8443" />
好了,這樣就把第一個的server.xml配置修改完成了。第二個tomca02的配置類似,3個埠我設定的是:8052,8083,9081

5)修改tomcat/bin下的啟動指令碼,其實就是新增幾行程式碼,如在tomcat01的startup.sh和shutdown.sh檔案中新增如下程式碼:

# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
# -----------------------------------------------------------------------------

export JAVA_HOME=/usr/local/jdk7
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib
export CATALINA_HOME=$CATALINA_HOME
export CATALINA_BASE=$CATALINA_BASE

# Better OS/400 detection: see Bugzilla 31132
[注:]上下被#註釋掉的地方,是為了方便大家找到新增的位置,是原來檔案中的內容,我們這裡新增的是export開頭的程式碼。

那麼對應的tomcat02配置如下;

export JAVA_HOME=/usr/local/jdk7
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib
export CATALINA_HOME=$CATALINA_2_HOME
export CATALINA_BASE=$CATALINA_2_BASE
哦了,這樣就完成了linux中多個tomcat的配置。下面就可以在每個tomcat/bin目錄下分別執行./startup.sh了。最後在瀏覽器中分別輸入http://localhost:8081和http://localhost:8083就可以看到,已經配置成功了。

###如果您覺得幫到您,請頂一下。謝謝呢!###