自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux下搭建tomcat集群全記錄

開源 Linux
本文將講述如何在Linux下搭建tomcat集群,以及搭建過程中可能的遇到的問題和解決方法。為簡單起見,本文演示搭建的集群只有兩個tomact節(jié)點(diǎn)外加一個apache組成,三者將安裝在同一機(jī)器上……

1.預(yù)期目標(biāo)

本文將講述如何在Linux下搭建tomcat集群,以及搭建過程中可能的遇到的問題和解決方法。為簡單起見,本文演示搭建的集群只有兩個tomact節(jié)點(diǎn)外加一個apache組成,三者將安裝在同一機(jī)器上:

apache:

安裝路徑:/usr/local/apache2

端口:90

tomcat1:

安裝路徑:/usr/local/apache-tomcat-6.0.33-1

端口:6080

tomcat2:

安裝路徑:/usr/local/apache-tomcat-6.0.33-2

端口:7080

2.所需要軟件列表

apache

當(dāng)前最新版本:2.2.21

本文采用源碼方式安裝,源碼包下載地址:http://labs.renren.com/apache-mirror//httpd/httpd-2.2.21.tar.gz

其他版本下載地址參見:http://httpd.apache.org/download.cgi

tomcat 6

當(dāng)前最新版本:6.0.33

本文使用自解壓的tar.gz包進(jìn)行安裝,下載地址:http://labs.renren.com/apache-mirror/tomcat/tomcat-6/v6.0.33/bin/apache-tomcat-6.0.33.tar.gz

其他版本下載地址參見:http://tomcat.apache.org/download-60.cgi

Apache Tomcat Connector (也就是mod_jk)

當(dāng)前最新版本:JK-1.2.32

本文采用源碼方式安裝,源碼包下載地址:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.32-src.tar.gz

其他版本下載地址參見:http://tomcat.apache.org/download-connectors.cgi

3.軟件安裝

3.1 安裝apache

1.進(jìn)入下載好的httpd-2.2.21.tar.gz文件所在目錄,執(zhí)行解壓操作:

  1. tar -zxvf httpd-2.2.21.tar.gz 

2.進(jìn)入解壓出的文件夾根目錄:

  1. cd httpd-2.2.21 

3.進(jìn)行編譯參數(shù)配置:

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

關(guān)于configure參數(shù)的更多內(nèi)容可參考:

http://httpd.apache.org/docs/2.2/en/programs/configure.html#installationdirectories

4.編譯安裝:

  1. make  
  2. make install 

5.啟動和關(guān)閉apache

完成上述步驟后,apache的安裝就結(jié)束了,通過下面的命令啟動和關(guān)閉apache:

啟動:

  1. /usr/local/apache2/bin/apachectl start 

關(guān)閉:

  1. /usr/local/apache2/bin/apachectl stop 

3.2 關(guān)于在安裝apache過程中報Cannot use an external APR with the bundled APR-util錯誤的解決辦法

有時候,在安裝apache,執(zhí)行./configure操作時會報這個錯誤,解決方法是安裝apache2.2.x自身攜帶的apr,方法為:

1.自源碼安裝目錄httpd-2.2.21進(jìn)入apache2.2.x自帶apr的安裝目錄

  1. cd srclib/apr 

2.安裝apr(此處將之安裝在/usr/local/apr下,如果系統(tǒng)中已經(jīng)安裝apr,可找到安裝目錄進(jìn)行覆蓋)

  1. ./configure --prefix=/usr/local/apr  
  2. make  
  3. make install 

3.安裝apr-util

  1. ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr  
  2. make  
  3. make install 

4.使用新安裝的apr重新進(jìn)行apache編譯配置

放回安裝根目錄httpd-2.2.21,執(zhí)行:

  1. ./configure --prefix=/usr/local/apache2 \  
  2. --enable-mods-shared=all \  
  3. --with-apr=/usr/local/apr \  
  4. --with-apr-util=/usr/local/apr-util/bin 

補(bǔ)充:

如果你安裝是apache-2.4以上版本,有以下幾點(diǎn)不同:

1、需要單獨(dú)下載apr和apr-util

apr下載地址: http://mirror.bjtu.edu.cn/apache//apr/apr-1.4.6.tar.bz2

apr-util下載地址:http://mirror.bjtu.edu.cn/apache//apr/apr-util-1.4.1.tar.bz2

2. 此外還需要安裝pcre

http://pcre.org/下載pcre,解壓進(jìn)入源碼目錄執(zhí)行

  1. ./configure --prefix=/usr/local/pcre 

3. 最后安裝apache時configure需要這樣配置

  1. ./configure --prefix=/usr/local/apache2 \  
  2. --enable-mods-shared=all \  
  3. --with-apr=/usr/local/apr \  
  4. --with-apr-util=/usr/local/apr-util/bin  
  5. --with-pcre=/usr/local/pcre 

#p#

3.3 安裝Apache Tomcat Connector(mod_jk)

1.進(jìn)入下載好的tomcat-connectors-1.2.32-src.tar.gz文件所在目錄,執(zhí)行解壓操作:

  1. tar -zxvf tomcat-connectors-1.2.32-src.tar.gz 

2.進(jìn)入解壓出的文件夾下的native子目錄:

  1. cd tomcat-connectors-1.2.32-src/native 

3.進(jìn)行編譯參數(shù)配置:

  1. ./buildconf.sh  
  2. ./configure --with-apxs=/usr/local/apache2/bin/apxs \  
  3. --with-java-home=$JAVA_HOME --with-java-platform=2 \  
  4. --enable-jni 

4.編譯安裝:

  1. make  
  2. make install 

如果成功結(jié)束,你可以在/usr/local/apache2/modules/下找到mod_jk.so文件。

3.4 安裝tomcat

兩次解壓下載到的apache-tomcat-6.0.33.tar.gz文件至/usr/local/,并分別重命名為apache-tomcat-6.0.33-1和apache-tomcat-6.0.33-2

4.集群配置

4.1 配置tomcat

1.修改端口

對于tomcat配置主要集中在conf/server.xml文件上。首先,鑒于是在同一機(jī)器上運(yùn)行兩個tomcat實例,因此,要對server.xml中配置的所有端口進(jìn)行修改,避免端口被占用,一種簡單而穩(wěn)妥的修改方法是將該文件中出現(xiàn)的所有端口號按一種簡單的規(guī)則統(tǒng)一進(jìn)行改動,比如在原端口號基礎(chǔ)上統(tǒng)一加1000或減1000?;谶@個原則,apache-tomcat-6.0.33-1的連接端口修改為

6080,apache-tomcat-6.0.33-2的連接端口修改為:7080,其他端口配置同樣依照該原則。

2.開啟tomcat集群支持

同樣是在conf/server.xml文件里,進(jìn)行兩處改動:

改動1:為<Engine>設(shè)置jvmRoute

實際上,在server.xml里就有一段現(xiàn)成的帶jvmRoute的<Engine>配置,我們可以參考這段配置為<Engine/>加個jvmRoute就可以了,對于jvmRoute的取值要特別注意:其值必須于后面要提到的mod_jk的workers.properties文件中結(jié)點(diǎn)名相一致!由于那個文件中結(jié)點(diǎn)名為tomcat1和tomcat2,因此,此處我們必須設(shè)定jvmRoute的值為這兩個值之一。關(guān)于這一點(diǎn)在tomcat官方關(guān)于Apache Tomcat Connector的文檔 http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html 也有明確提及。jvmRoute值會出現(xiàn)在由該結(jié)點(diǎn)創(chuàng)建的session id中,例如:在非集群環(huán)境下,一個sessionid可能是 “xxxxxxxxx” 的格式,而在集群環(huán)境下,如果當(dāng)前結(jié)點(diǎn)的jvmRtomat1oute被配置為tomcat1,那由該結(jié)點(diǎn)生成的sessionid將變成“xxxxxxxxx.tomat1”格式,而mod_jk正是依賴于這個節(jié)點(diǎn)后綴實現(xiàn)sticky session的,也就是把所有后綴是tomat1的請求都發(fā)送給tomat1結(jié)點(diǎn)進(jìn)行處理。

 

改動2:在<Engine/>中添加關(guān)于集群的配置

在tomcat官方關(guān)于tomcat集群配置的文檔:http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html 中,有一份默認(rèn)配置:

  1. <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
  2. channelSendOptions="8">
  3. <Manager className="org.apache.catalina.ha.session.DeltaManager"
  4. expireSessionsOnShutdown="false"
  5. notifyListenersOnReplication="true"/>
  6. <Channel className="org.apache.catalina.tribes.group.GroupChannel">
  7. <Membership className="org.apache.catalina.tribes.membership.McastService"
  8. address="228.0.0.4"
  9. port="45564"
  10. frequency="500"
  11. dropTime="3000"/>
  12. <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
  13. address="auto"
  14. port="4000"
  15. autoBind="100"
  16. selectorTimeout="5000"
  17. maxThreads="6"/>
  18. <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
  19. <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
  20. </Sender>
  21. <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
  22. <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
  23. </Channel>
  24. <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
  25. filter=""/>
  26. <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
  27. <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
  28. tempDir="/tmp/war-temp/"
  29. deployDir="/tmp/war-deploy/"
  30. watchDir="/tmp/war-listen/"
  31. watchEnabled="false"/>
  32. <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
  33. <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
  34. </Cluster>

這份默認(rèn)配置可以滿足大多數(shù)應(yīng)用場景,因此,我們只需要將這份配置復(fù)制到<Engine/>中,tomcat的配置就全部完成了。

#p#

4.2 配置apache

打開apache安裝目錄下的conf/httpd.conf文件,在文件最后追加以下內(nèi)容:

  1. # Load mod_jk module
  2. LoadModule jk_module modules/mod_jk.so
  3. # Specify jk log file.
  4. JkLogFile /var/log/mod_jk.log
  5. # Specify jk log level [debug/error/info]
  6. JkLogLevel info
  7. # Specify workers.properties, this file tell jk:
  8. # how many nodes and where they are.
  9. JkWorkersFile conf/workers.properties
  10. # Specify which requests should handled by which node.
  11. JkMount /* controller

關(guān)于mod_jk配置項的詳細(xì)內(nèi)容,可參考:http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html

上述配置中:JkWorkersFile conf/workers.properties 指明由一個workers.properties文件來描述集群結(jié)點(diǎn)的情況,因此,我們需要創(chuàng)建這個workers.properties文件,并放置于conf文件夾下,這個文件的內(nèi)容如下:

  1. #所有節(jié)點(diǎn)列表,其中controller是一個邏輯結(jié)點(diǎn),負(fù)責(zé)負(fù)載均衡控制,
  2. #如果JkMount中的URL指定給了controller就表示這個請求會被自動散列到某個物理節(jié)點(diǎn)上。
  3. #注意:真正負(fù)責(zé)處理請求的tomcat的名稱(這里就是tomcat1,tomcat2)必須于它們在conf/server.xml
  4. #文件中配置的jvmRout的屬性值是一致的!
  5. worker.list = controller,tomcat1,tomcat2
  6. #========tomcat1========
  7. worker.tomcat1.port=6009 #ajp13 端口號,在tomcat下server.xml配置,默認(rèn)8009
  8. worker.tomcat1.host=localhost #tomcat的主機(jī)地址,如不為本機(jī),請?zhí)顚慽p地址
  9. worker.tomcat1.type=ajp13
  10. worker.tomcat1.lbfactor = 1 #server的加權(quán)比重,值越高,分得的請求越多
  11. #========tomcat2========
  12. worker.tomcat2.port=7009 #ajp13 端口號,在tomcat下server.xml配置,默認(rèn)8009
  13. worker.tomcat2.host=localhost #tomcat的主機(jī)地址,如不為本機(jī),請?zhí)顚慽p地址
  14. worker.tomcat2.type=ajp13
  15. worker.tomcat2.lbfactor = 1 #server的加權(quán)比重,值越高,分得的請求越多
  16. #========controller,負(fù)載均衡控制器========
  17. worker.controller.type=lb
  18. worker.controller.balance_workers=tomcat1,tomcat2 #指定分擔(dān)請求的tomcat,舊版本中的balanced_workers,已不再推薦使用!
  19. worker.controller.sticky_session=1 #sticky_session為1表示,
  20. #當(dāng)某一 client的session創(chuàng)建之后,后續(xù)由該客戶端發(fā)起的請求,也就是這個session的所有請求都始終由第一次處理該請求的結(jié)點(diǎn)
  21. #負(fù)責(zé)處理(除非該結(jié)點(diǎn)掛掉)

到此,所有配置均已完成,啟動兩個tomcat和apache后,將某一應(yīng)用同時部署到兩個tomcat中,通過apache訪問這個應(yīng)用,觀察tomcat后臺打出的日志會發(fā)現(xiàn),請求被隨機(jī)分配給了兩個tomcat交替執(zhí)行。

備注:應(yīng)用程序要為集群所做的準(zhǔn)備

1. 在應(yīng)用程序的web.xml中需要加入:<distributable/>元素

2. session中存放的數(shù)據(jù)(如attribute)必須實現(xiàn)序列化。

參考資源:

tomcat官方關(guān)于tomcat集群配置的文檔:

http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html

tomcat官方關(guān)于Apache Tomcat Connector的文檔

http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html

apache官方關(guān)于apache的安裝文檔

http://httpd.apache.org/docs/2.2/en/install.html

apache官方關(guān)于configure參數(shù)的文檔

http://httpd.apache.org/docs/2.2/en/programs/configure.html#installationdirectories

原文鏈接:http://blog.csdn.net/bluishglc/article/details/6867358

責(zé)任編輯:牛小雨 來源: bluishglc的博客
相關(guān)推薦

2011-04-27 10:14:38

2009-09-16 08:51:47

linuxtomcat集群配置

2020-03-23 22:50:36

WindowsNginxTomcat

2013-12-12 13:25:18

2018-12-11 10:55:00

SQLFuzzWEB安全

2020-04-14 21:12:42

Redis集群Linux

2011-04-06 11:20:31

linuxMRTG

2009-11-24 09:26:49

LinuxJDKTomcat

2014-10-09 10:04:23

CentOS集群

2015-01-15 10:50:46

CoreOSUnitedStackDocker

2014-07-28 10:27:37

linux集群

2024-01-26 15:19:30

新榜大會內(nèi)容好生意

2011-12-01 13:03:00

2017-04-13 13:00:27

LinuxWindowstomcat

2011-05-31 15:28:23

筆記本體驗

2014-12-15 14:57:58

2018-06-20 13:01:27

2025-04-15 01:00:00

SSH程序連接安全

2017-07-11 13:30:12

RedisDockerLinux

2015-09-25 10:18:26

搭建FTP服務(wù)Linux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號