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/