天天看點

linux搭建tomcat叢集

在本機Windows7系統上安裝一個Ubuntu虛拟機,在虛拟機内搭建兩個tomcat叢集,

檢視linxu版本指令:

uname -a

linux搭建tomcat叢集

解壓指令:

tar -zxvf xxxx.tar.gz

第一步:安裝jdk

1、下載下傳jdk-7u67-linux-i586.tar.gz,放到 /usr/local目錄下,解壓

生成檔案夾 jdk1.7.0_67

2、配置環境變量

編輯/etc/profile,插入一段内容

linux搭建tomcat叢集

重新開機虛拟機,再輸入 java -version,确認java安裝成功

第二步:安裝apache

下載下傳httpd-2.2.31.tar.gz,解壓到/usr/local,生成檔案夾httpd-2.2.31

進入httpd-2.2.31,執行指令

./configure --prefix=/usr/local/apache2 --enable-mods-shared=all

編譯安裝 

make 

make install

4、啟動apache

/usr/local/apache2/bin/apachectl start

關閉apache 

/usr/local/apache2/bin/apachectl stop

如果報apache is currently not installed,就重新安裝下apache

第三步:Apache Tomcat Connector (也就是mod_jk)

1、下載下傳 tomcat-connectors-1.2.41-src.tar.gz,解壓到 /usr/local 生成檔案夾

tomcat-connectors-1.2.41-src

2、進入 /tomcat-connectors-1.2.41-src/native,執行指令 ./buildconf.sh

如果報 autoconf 沒有安裝,那就用 執行 apt -get install autoconf安裝

3、配置參數

./configure --with-apxs=/usr/local/apache2/bin/apxs \

--with-java-home=$JAVA_HOME --with-java-platform=2 \

--enable-jni

4、編譯 安裝 

make

make install

如果成功結束,你可以在/usr/local/apache2/modules/下找到mod_jk.so檔案。

第四步:安裝tomcat

1、下載下傳apache-tomcat-6.0.41.tar.gz,解壓到 /usr/local,生成檔案夾

apache-tomcat-6.0.41,再執行重命名指令

 cp apache-tomcat-6.0.41 apache-tomcat-6.0.41-1,

再解壓一次并重命名為 apache-tomcat-6.0.41-2

2、修改server.xml(兩個tomcat都要做)

  (1) 修改端口,把其中一個tomcat的各種端口修改,一個8080,一個8081,避免沖突

  (2)修改server.xml

兩個tomcat分别改為 tomcat1和tomcat2

(3)增加叢集的支援,兩個tomcat的server.xml都插入下面的内容

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"  

         channelSendOptions="8">  

  <Manager className="org.apache.catalina.ha.session.DeltaManager"  

           expireSessionsOnShutdown="false"  

           notifyListenersOnReplication="true"/>  

  <Channel className="org.apache.catalina.tribes.group.GroupChannel">  

    <Membership className="org.apache.catalina.tribes.membership.McastService"  

                address="228.0.0.4"  

                port="45564"  

                frequency="500"  

                dropTime="3000"/>  

    <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"  

              address="auto"  

              port="4000"  

              autoBind="100"  

              selectorTimeout="5000"  

              maxThreads="6"/>  

    <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">  

      <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>  

    </Sender>  

    <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>  

    <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>  

  </Channel>  

  <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"  

         filter=""/>  

  <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>  

  <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"  

            tempDir="/tmp/war-temp/"  

            deployDir="/tmp/war-deploy/"  

            watchDir="/tmp/war-listen/"  

            watchEnabled="false"/>  

  <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>  

  <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>  

</Cluster>      

第五步:配置apache

1、進入/usr/local/apache2/conf,編輯 httpd.conf,插入一下内容

# Load mod_jk module  

LoadModule jk_module modules/mod_jk.so  

# Specify jk log file.  

JkLogFile /var/log/mod_jk.log  

# Specify jk log level [debug/error/info]  

JkLogLevel info  

# Specify workers.properties, this file tell jk:  

# how many nodes and where they are.  

JkWorkersFile conf/workers.properties  

# Specify which requests should handled by which node.  

JkMount /* controller

2、在conf目錄下建立 workers.properties,插入内容

#所有節點清單,其中controller是一個邏輯結點,負責負載均衡控制,  

#如果JkMount中的URL指定給了controller就表示這個請求會被自動散列到某個實體節點上。  

#注意:真正負責處理請求的tomcat的名稱(這裡就是tomcat1,tomcat2)必須于它們在conf/server.xml  

#檔案中配置的jvmRout的屬性值是一緻的!  

worker.list = controller,tomcat1,tomcat2  

#========tomcat1========  

worker.tomcat1.port=6009       #ajp13 端口号,在tomcat下server.xml配置,預設8009  

worker.tomcat1.host=localhost  #tomcat的主機位址,如不為本機,請填寫ip位址  

worker.tomcat1.type=ajp13  

worker.tomcat1.lbfactor = 1    #server的權重比重,值越高,分得的請求越多  

#========tomcat2========  

worker.tomcat2.port=7009       #ajp13 端口号,在tomcat下server.xml配置,預設8009  

worker.tomcat2.host=localhost  #tomcat的主機位址,如不為本機,請填寫ip位址  

worker.tomcat2.type=ajp13  

worker.tomcat2.lbfactor = 1    #server的權重比重,值越高,分得的請求越多  

#========controller,負載均衡控制器========  

worker.controller.type=lb  

worker.controller.balance_workers=tomcat1,tomcat2   #指定分擔請求的tomcat,舊版本中的balanced_workers,已不再推薦使用!  

worker.controller.sticky_session=1 #sticky_session為1表示,  

#當某一 client的session建立之後,後續由該用戶端發起的請求,也就是這個session的所有請求都始終由第一次處理該請求的結點  

#負責處理(除非該結點挂掉)

至此tomcat叢集配置完成,通過一個簡單的web應用可以測試

第六步、部署web應用 TestMVC

将TestMVC.war包分别放到兩個tomcat的webapps目錄下

注意web應用中的web.xml需要在</web-app>前面插入<distributable/>

第七步:測試叢集

1、啟動apache  /usr/local/apache2/bin/apachectl start

2、啟動兩個tomcat  sh startup.sh

3、通路叢集 http://localhost/TestMVC

非叢集通路方式 http://localhost:8080/TestMVC和http://localhost:8081/TestMVC

繼續閱讀