天天看點

apache tomcat叢集詳細配置

1 安裝apache,我安裝的版本是apache_2.0.55-win32-x86-no_ssl.msi,如果安裝後能夠正常開啟和關閉即表示可以使用

2 下載下傳mod_jk-1.2.8-apache-2.0.52.so,将這個檔案複制到apache安裝目錄下的modules檔案夾

3 下面開始配置叢集

   a: 在apache的安裝目錄的conf目錄下找到httpd.conf檔案并打開,在檔案的最下面添加以下内容

       include conf/mod_jk.conf

   b: 在conf目錄下建立mod_jk.conf,并用記事本打開,并添加以下内容

      #加載mod_jk Module   

      LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.0.52.so

      #指定 workers.properties檔案路徑   

      JkWorkersFile conf/workers.properties   

      #加載workers的請求處理配置設定檔案

      JkMountFile conf/uriworkermap.properties

      #指定jk的日志輸出檔案

      JkLogFile logs/mod_jk.log

     #指定日志級别

     JkLogLevel warn

      #指定那些請求交給tomcat處理,"controller"為在workers.propertise裡指定的負載配置設定控制器   

      JkMount /* controller

   c: 在conf目錄下建立workers.properties檔案,并添加以下内容

    #server 清單  

worker.list = controller,tomcat1,tomcat2  

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

#ajp13 端口号,在tomcat下server.xml配置,預設8009     

worker.tomcat1.port=8019       

#tomcat的主機位址,如不為本機,請填寫ip位址     

worker.tomcat1.host=localhost  

worker.tomcat1.type=ajp13    

#server的權重比重,值越高,分得的請求越多

worker.tomcat1.lbfactor = 2

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

#ajp13 端口号,在tomcat下server.xml配置,預設8009    

worker.tomcat2.port=8029      

#tomcat的主機位址,如不為本機,請填寫ip位址  

worker.tomcat2.host=localhost   

worker.tomcat2.type=ajp13    

#server的權重比重,值越高,分得的請求越多    

worker.tomcat2.lbfactor = 1

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

worker.controller.type=lb    

#指定分擔請求的tomcat  

worker.controller.balanced_workers=tomcat1,tomcat2

#重試次數

worker.retries=3

#粘性Session(預設是打開的) 當該屬性值=True(或1)時,代表Session是粘性的,

#即同一Session在叢集中的同一個節點上處理,Session不跨越節點。在叢集環境中,一般将該值設定為False

worker.controller.sticky_session=False

以上内容中的tomcat端口号需要根據tomcat的配置進行相應的修改,如果tomcat中的端口按照上面的配置配置的話是不需要修改的,這個後面再說。

  c: 在conif目錄下建立uriworkermap.properties檔案(内容為空),同時在安裝目錄下logs檔案夾中建立mod_jk.log檔案(内容為空),

    兩個檔案都必須要建立,否則會導緻apache無法啟動.

到此為止,apache的配置基本結束了,為了保險起見,建議将apache重新啟動試一試,如果啟動和停止正常則表示配置正确,如不能啟動可能是配置有錯誤。

假設以上配置正确,下一步需要配置tomcat,等tomcat配置好之後,再根據目錄下的workers.properties檔案配置相關的端口。

--------------------------

tomcat配置

tomcat+JDK的安裝就不一一介紹了,直接介紹配置叢集的配置。

1  首先準備兩個完全一緻的tomcat,就叫tomcat1和tomcat2吧(以下内容以tomcat1的配置為主,因為兩個配置都大部分一樣),

   同一機器中實作叢集需要使用免安裝的版本的tomcat。

2  打開tomcat1目錄下的conf檔案夾,找到server.xml檔案并打開

   将

   <Server port="8005" shutdown="SHUTDOWN">  

   改成

   <Server port="8015" shutdown="SHUTDOWN">

   同理需要修改tomcat2中的内容,可以将端口改成8025,目的是為了避免端口沖突

3  将

  <Connector port="8080" protocol="HTTP/1.1"

      connectionTimeout="20000"

      redirectPort="8443" />

  改成

     <Connector port="8081" protocol="HTTP/1.1"

          connectionTimeout="20000"

          redirectPort="8443" />

  同樣修改tomcat2中的内容,端口改成8082,目的還是為了避免端口沖突

4 将

   <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

   改成

  <Connector port="8019" protocol="AJP/1.3" redirectPort="8443" />

   同樣修改tomcat2中的端口為8029

   在這裡配置的端口需要與剛剛配置在apache中workers.properties檔案裡端口一緻

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

    #ajp13 端口号,在tomcat下server.xml配置,預設8009     

    worker.tomcat1.port=8019    

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

    #ajp13 端口号,在tomcat下server.xml配置,預設8009    

    worker.tomcat2.port=8029      

以上所有修改都必須tomcat1和tomcat2同步修改,且端口不能一樣。

配置到這裡,叢集就算是完成了,但是有一點需要說明的是,以上的配置并不能實作Session的共享,

在實際項目當中,Session必須是要實作多tomcat之間共享的。

是以,接下來我們開始配置Session共享。

同樣打開tomcat目錄中conf檔案夾下的server.xml檔案。

A、修改Engine節點資訊

   将

    <Engine name="Catalina" defaultHost="localhost" >

   改成

    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

   同理将tomcat2中的改為

    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">

B、去掉tomcat1和tomcat2中<Cluster>  <\Cluster> 的注釋符

C、将以下内容添加到<Cluster>  <\Cluster>節點中,修改Cluster 節點資訊

<Membership      

className="org.apache.catalina.cluster.mcast.McastService"

mcastBindAddress="127.0.0.1"

mcastAddr="224.0.0.1"

mcastPort="45564"

mcastFrequency="500"

mcastDropTime="3000"/>

<Receiver         

className="org.apache.catalina.cluster.tcp.ReplicationListener"         

tcpListenAddress="127.0.0.1"

tcpListenPort="4001"    這裡一定要修改,tomcat1和tomcat2不能相同

tcpSelectorTimeout="100"

tcpThreadCount="6"/>

修改mcastBindAddress屬性和tcpListenAddress屬性的值為本機IP位址

修改tcpListenPort屬性的值,且tomcat1和tomcat2的值不能相同,tomcat2中可設定為4002

完成以上的配置之後,apache和tomcat的配置就完成了,但是需要實作Session共享還需要最後關鍵的配置,需要對釋出的項目進行相關的修改。

1  釋出的項目中,所有需要放置在Session中的對象必須實作序列化接口

    implements java.io.Serializable

2  釋出的項目中的web.xml檔案中加入<distrbutable/>标簽,放置在</web-app>之前即可

以上兩項缺一不可,否則釋出的系統會出現莫名其妙的問題,如無法登入/系統報錯等等。

以上就是所有關于apache叢集的所有配置。

提供兩篇文章供參考:

http://blog.csdn.net/yipanbo/article/details/44079083

http://liuyu.blog.51cto.com/183345/113544/