windows下通過tomcat搭建叢集
阿新 • • 發佈:2019-01-28
前提:JDK必須環境變數配置好,在D盤下新建一個資料夾httpd,tomcat解壓到此資料夾,在httpd下面新建Apache HTTP資料夾,把Apache的伺服器安裝到此目錄
一、下載Apache伺服器
這個是負載均衡伺服器,用來轉發請求到不同的tomcat上
下載地址:http://archive.apache.org/dist/httpd/binaries/win32/httpd-2.2.25-win32-x86-no_ssl.msi
Apache安裝完成後在瀏覽器中輸入http://localhost/ ,如果出現It works! 則證明安裝成功
二、下載tomcat
下載地址:http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.8/bin/apache-tomcat-7.0.8.zip
下載好解壓出來兩份命名為tomcat1和tomcat2 放到httpd下面
三、下載mod_jk
這個是用來搭建tomcat叢集的外掛
下載好,放到D://httpd/Apache HTTP/modules 下面
四、配置mod_jk.conf
新建檔案mod_jk.conf 放到目錄D://httpd/Apache HTTP/conf 下面
輸入內容:
#載入mod_jk Module
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so
#指定workers.properties檔案路徑
JkWorkersFile conf/workers.properties
#指定那些請求交給tomcat處理,"controller"為在workers.propertise裡指定的負載分配控制器名
JkMount /* controller
五、配置workers.properties
新建檔案workers.properties,放到目錄D://httpd/Apache HTTP/conf 下面
輸入內容:
#server
worker.list = controller
#========tomcat1========
#ajp13埠號,在tomcat下server.xml配置,預設8009
worker.tomcat1.port=8009
#tomcat的主機地址,如不為本機,請填寫ip地址
worker.tomcat1.host=localhost
#協議型別
worker.tomcat1.type=ajp13
#server的加權比重,值越高,分得的請求越多。lbfactor是負載平衡因數(Load Balance Factor)
worker.tomcat1.lbfactor=1
#========tomcat2========
worker.tomcat2.port=9009
worker.tomcat2.host= localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
#========controller,負載均衡控制器========
#負載均衡控制器型別,lbfactor是負載平衡因數(Load Balance Factor)
worker.controller.type=lb
#指定分擔請求的tomcat列表
worker.controller.balanced_workers=tomcat1,tomcat2
#粘性session(預設是開啟的) 當該屬性值=true(或1)時,代表session是粘性的,即同一session在叢集中的同一個節點上處理,session不跨越節點。在叢集環境中,一般將該值設定為false
worker.controller.sticky_session=false
#設定用於負載均衡的server的session可否共享 1為共享
worker.controller.sticky_session_force=1
在檔案的末尾新增下面這句話:
Include conf/mod_jk.conf
七、配置tomcat
修改檔案D://httpd/tomcat1/conf/server.xml
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1" >
jvmRoute 為你這個tomcat的名字,要和上面那個workers.properties裡面的配置想照應。
然後在這個節點下面新增下面內容
八、配置另一個tomcat
九、修改tomcat2的埠
在tomcat2/conf/server.xml
tomcat1的埠不用改,用預設的就行,主要是為了tomcat2的埠不和tomcat1的埠衝突
<Server port="9005" shutdown="SHUTDOWN">
<Connector port="9080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />
十一、啟動tomcat1 和tomcat2
雙擊D://httpd/tomcat1/bin/startup.bat
雙擊D://httpd/tomcat2/bin/startup.bat
注意:如果JDK沒有配置好會出錯的,JDK怎麼配置,自己百度吧。。
十二、下載測試程式
下載test.war放到tomcat1 和 tomcat2 的 wabapps下面,裡面也有所有的配置檔案。
下載地址:http://download.csdn.net/download/junmoxi/9954807
十三、瀏覽器訪問
http://localhost/test
如果重新整理一次,後面的tomcat改變,說明叢集已經搭建完成。
注意:他支援熱插拔,就是如果一個tomcat宕掉了,並不會影響整個程式,你可以隨時再將此tomcat重啟。
一、下載Apache伺服器
這個是負載均衡伺服器,用來轉發請求到不同的tomcat上
下載地址:http://archive.apache.org/dist/httpd/binaries/win32/httpd-2.2.25-win32-x86-no_ssl.msi
Apache安裝完成後在瀏覽器中輸入http://localhost/ ,如果出現It works! 則證明安裝成功
二、下載tomcat
下載地址:http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.8/bin/apache-tomcat-7.0.8.zip
下載好解壓出來兩份命名為tomcat1和tomcat2 放到httpd下面
三、下載mod_jk
這個是用來搭建tomcat叢集的外掛
下載地址:
下載好,放到D://httpd/Apache HTTP/modules 下面
四、配置mod_jk.conf
新建檔案mod_jk.conf 放到目錄D://httpd/Apache HTTP/conf 下面
輸入內容:
#載入mod_jk Module
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so
#指定workers.properties檔案路徑
JkWorkersFile conf/workers.properties
#指定那些請求交給tomcat處理,"controller"為在workers.propertise裡指定的負載分配控制器名
JkMount /* controller
五、配置workers.properties
新建檔案workers.properties,放到目錄D://httpd/Apache HTTP/conf 下面
輸入內容:
#server
worker.list = controller
#========tomcat1========
#ajp13埠號,在tomcat下server.xml配置,預設8009
worker.tomcat1.port=8009
#tomcat的主機地址,如不為本機,請填寫ip地址
worker.tomcat1.host=localhost
#協議型別
worker.tomcat1.type=ajp13
#server的加權比重,值越高,分得的請求越多。lbfactor是負載平衡因數(Load Balance Factor)
worker.tomcat1.lbfactor=1
#========tomcat2========
worker.tomcat2.port=9009
worker.tomcat2.host= localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
#========controller,負載均衡控制器========
#負載均衡控制器型別,lbfactor是負載平衡因數(Load Balance Factor)
worker.controller.type=lb
#指定分擔請求的tomcat列表
worker.controller.balanced_workers=tomcat1,tomcat2
#粘性session(預設是開啟的) 當該屬性值=true(或1)時,代表session是粘性的,即同一session在叢集中的同一個節點上處理,session不跨越節點。在叢集環境中,一般將該值設定為false
worker.controller.sticky_session=false
#設定用於負載均衡的server的session可否共享 1為共享
worker.controller.sticky_session_force=1
六、修改httpd.conf檔案
檔案在D://httpd/Apache HTTP/conf 下面,在檔案的末尾新增下面這句話:
Include conf/mod_jk.conf
七、配置tomcat
修改檔案D://httpd/tomcat1/conf/server.xml
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1"
jvmRoute 為你這個tomcat的名字,要和上面那個workers.properties裡面的配置想照應。
然後在這個節點下面新增下面內容
<!-- 開啟tomcat叢集模式 -->
<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>
八、配置另一個tomcat
和七步一樣,只不過
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">
jvmRoute要寫tomcat2
然後在這個節點下面新增和tomcat1一樣的內容
九、修改tomcat2的埠
在tomcat2/conf/server.xml
tomcat1的埠不用改,用預設的就行,主要是為了tomcat2的埠不和tomcat1的埠衝突
<Server port="9005" shutdown="SHUTDOWN">
<Connector port="9080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />
十、重新啟動Apache server
在桌面右下角有個Apache伺服器的圖示,滑鼠點選他,有個restart
十一、啟動tomcat1 和tomcat2
雙擊D://httpd/tomcat1/bin/startup.bat
雙擊D://httpd/tomcat2/bin/startup.bat
注意:如果JDK沒有配置好會出錯的,JDK怎麼配置,自己百度吧。。
十二、下載測試程式
下載test.war放到tomcat1 和 tomcat2 的 wabapps下面,裡面也有所有的配置檔案。
下載地址:http://download.csdn.net/download/junmoxi/9954807
十三、瀏覽器訪問
http://localhost/test
如果重新整理一次,後面的tomcat改變,說明叢集已經搭建完成。
看下圖
注意:他支援熱插拔,就是如果一個tomcat宕掉了,並不會影響整個程式,你可以隨時再將此tomcat重啟。