久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Linux下搭建tomcat集群全記錄

 獨醭湉睚 2011-12-13

Linux下搭建tomcat集群全記錄


1.預(yù)期目標

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

當前最新版本:2.2.21
本文采用源碼方式安裝,,源碼包下載地址:http://labs.renren.com/apache-mirror//httpd/httpd-2.2.21.tar.gz
其他版本下載地址參見:http://httpd./download.cgi

tomcat 6

當前最新版本:6.0.33
本文使用自解壓的tar.gz包進行安裝,,下載地址:http://labs.renren.com/apache-mirror/tomcat/tomcat-6/v6.0.33/bin/apache-tomcat-6.0.33.tar.gz
其他版本下載地址參見:http://tomcat./download-60.cgi

Apache Tomcat Connector (也就是mod_jk)

當前最新版本:JK-1.2.32
本文采用源碼方式安裝,源碼包下載地址:http://www./dist/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.32-src.tar.gz
其他版本下載地址參見:http://tomcat./download-connectors.cgi

3.軟件安裝

3.1 安裝apache

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

2.進入解壓出的文件夾根目錄:
cd httpd-2.2.21

3.進行編譯參數(shù)配置:
./configure --prefix=/usr/local/apache2 --enable-mods-shared=all
關(guān)于configure參數(shù)的更多內(nèi)容可參考:
http://httpd./docs/2.2/en/programs/configure.html#installationdirectories

4.編譯安裝:
make
make install


5.啟動和關(guān)閉apache
完成上述步驟后,,apache的安裝就結(jié)束了,,通過下面的命令啟動和關(guān)閉apache:
啟動:
/usr/local/apache2/bin/apachectl start
關(guān)閉:
/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進入apache2.2.x自帶apr的安裝目錄
cd srclib/apr

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


3.安裝apr-util
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install

4.使用新安裝的apr重新進行apache編譯配置
放回安裝根目錄httpd-2.2.21,,執(zhí)行:
./configure --prefix=/usr/local/apache2 \
--enable-mods-shared=all \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/bin


3.3 安裝Apache Tomcat Connector(mod_jk)

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

2.進入解壓出的文件夾下的native子目錄:
cd tomcat-connectors-1.2.32-src/native

3.進行編譯參數(shù)配置:
./buildconf.sh

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


4.編譯安裝:
make
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文件上,。首先,,鑒于是在同一機器上運行兩個tomcat實例,因此,,要對 server.xml中配置的所有端口進行修改,,避免端口被占用,一種簡單而穩(wěn)妥的修改方法是將該文件中出現(xiàn)的所有端口號按一種簡單的規(guī)則統(tǒng)一進行改動,, 比如在原端口號基礎(chǔ)上統(tǒng)一加1000或減1000,。基于這個原則,,apache-tomcat-6.0.33-1的連接端口修改 為:6080,,apache-tomcat-6.0.33-2的連接端口修改為:7080,其他端口配置同樣依照該原則,。

2.開啟tomcat集群支持
同樣是在conf/server.xml文件里,,進行兩處改動:

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


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



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

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

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

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

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配置項的詳細內(nèi)容,,可參考:http://tomcat./connectors-doc/webserver_howto/apache.html
上 述配置中:JkWorkersFile conf/workers.properties 指明由一個workers.properties文件來描述集群結(jié)點的情況,因此,,我們需要創(chuàng)建這個workers.properties文件,,并放置于 conf文件夾下,這個文件的內(nèi)容如下:

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

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

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

1. 在應(yīng)用程序的web.xml中需要加入:<distributable/>元素
2. session中存放的數(shù)據(jù)(如attribute)必須實現(xiàn)序列化,。

參考資源:

tomcat官方關(guān)于tomcat集群配置的文檔:
http://tomcat./tomcat-6.0-doc/cluster-howto.html

tomcat官方關(guān)于Apache Tomcat Connector的文檔
http://tomcat./connectors-doc/webserver_howto/apache.html

apache官方關(guān)于apache的安裝文檔
http://httpd./docs/2.2/en/install.html

apache官方關(guān)于configure參數(shù)的文檔
http://httpd./docs/2.2/en/programs/configure.html#installationdirectories

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多