apache tomcat實現集群詳解

2021-07-27 08:28:17 字數 4199 閱讀 4675

1、配置兩個tomcat(使用不同的埠)

tomcat1 的修改conf/server.xml

1.1 中的8005修改為18005

1.2修改下的

connectiontimeout="20000"

redirectport="8443" />中的8080為18080

1.3修改為18009

1.4在末尾加 jvmroute="jvm1"

1.5改為

1.6要實現session複製,還需要在context.xml新增屬性distributable="true",如下:

"true">
如果不想在context.xml中新增distributable="true",還有另一方法是在應用程式的web.xml中新增,不過這方法我沒有測試。

配置完成之後,啟動兩個tomcat測試一下tomcat是否可以正常啟動

2、 配置啟動自動載入**(proxy)模組(httpd.conf)

用文字編輯器開啟$/conf/http.conf檔案,去掉一下文字前的注釋符(#)

以下必須

loadmodule proxy_module modules/mod_proxy.so

loadmodule proxy_ajp_module modules/mod_proxy_ajp.so                    #如果是採用ajp_proxy,需要載入mod_proxy_ajp.so這個模組;

loadmodule proxy_balancer_module modules/mod_proxy_balancer.so

loadmodule slotmem_shm_module modules/mod_slotmem_shm.so                   #

proxy_balancer_module會用到slotmem_shm_module 

loadmodule proxy_connect_module modules/mod_proxy_connect.so

loadmodule proxy_ftp_module modules/mod_proxy_ftp.so

loadmodule proxy_http_module modules/mod_proxy_http.so                如果是採用http_proxy,需要載入mod_proxy_http.so這個模組;

loadmodule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so

以下非必須

loadmodule speling_module modules/mod_speling.so

loadmodule ssl_module modules/mod_ssl.so

loadmodule rewrite_module modules/mod_rewrite.so

3、集群方式

3.1開啟虛擬主機配置

找到「include conf/extra/httpd-vhosts.conf」字樣,去掉前面的注釋符

3.2配置虛擬主機

用文字編輯器開啟$/conf/extra/httpd-vhosts.conf檔案,注釋掉所有的dummy-host,在最後面追加如下內容

serveradmin 

[email protected]

servername localhost 

serveralias localhost 

proxypass / balancer://cluster/ stickysession=jsessionid nofailover=on 

proxypassreverse / balancer://cluster/ 

errorlog "logs/lbtest-error.log" 

customlog "logs/lbtest-access.log" common 

以上相同

以下不同(埠、ajp、http)

3.3 ajp_proxy方式集群

$/conf/http.conf檔案,在其末尾追加如下格式內容

proxyrequests off    

# 使用反向**

balancermember ajp: loadfactor=1 route=jvm1 

balancermember ajp: loadfactor=3 route=jvm3 

3.4 

http_proxy方式集群

$/conf/http.conf檔案,在其末尾追加如下格式內容

proxyrequests off    

# 使用反向**

balancermember loadfactor=1 route=jvm1 

balancermember  loadfactor=3 route=jvm3 

3.5 jk方式整合(未實踐)

修改conf/httpd.conf配置

loadmodule jk_module modules/mod_jk.so

jkworkersfile conf/workers.properties

jklogfile logs/mod_jk.log

jkloglevel debug

jkmount  /*.do loadbalancer

jkmount  /*.jsp loadbalancer

增加conf/workers.properties檔案,新增內容

worker.list=loadbalancer

worker.worker2.port=8077   #ajp的監聽埠

worker.worker2.host=108.88.3.105

worker.worker2.type=ajp13

worker.worker2.lbfactor=1

worker.worker3.port=9009

worker.worker3.host=127.0.0.1

worker.worker3.type=ajp13

worker.worker3.lbfactor=1

worker.loadbalancer.type=lb

worker.loadbalancer.balance_workers=worker2,worker3 #這裡在的worker2、worker3為需要與上邊tomcat設定的別名一致

worker.loadbalancer.sticky_session=1

4、訪問服務

分別在兩個tomcat放入相同的test專案

最後啟動apache2.4,在頁面中輸入localhost:80\test\test.jsp進行測試。(訪問apache的埠,而不是tomcat埠)

5、相關屬性

lbmethod表示:負載載均衡策略。 

lbmethod=byrequests 按照請求次數均衡(預設) 

lbmethod=bytraffic 按照流量均衡 

lbmethod=bybusyness 按照繁忙程度均衡(總是分配給活躍請求數最少的伺服器)

proxypass表示:所有的test請求都會重定向到balancer://mycluster/處理。balancer是內建負載。

proxypassreverse表示:反向**,也就是將所有的請求反向**到負載均衡後的應用url路徑中。

stickysession表示:進行session複製使用。

6、熱備份

熱備份的實現很簡單,只需新增 status=+h 屬性,就可以把某台伺服器指定為備份伺服器:

此時請求總是流向 8080這個url ,一旦8080掛掉, apache會檢測到錯誤並把請求分流給7080。apache會每隔幾分鐘檢測一下8080的狀況,如果8080恢復,就繼續使用8080。

balancermember 

balancermember  status=+h 

proxyset lbmethod=byrequests

proxyrequests off

proxypass /test balancer://mycluster/ stickysession=jsessionid nofailover=off

proxypassreverse /test balancer://mycluster/  

linux中apache tomcat的整合

1.編輯httpd。conf檔案 在檔案最末尾加上如下語句 load mod jk loadmodule jk module modules mod jk.so 使apache和tomcat連線起來 configure mod jk jkworkersfile conf workers.proper...

Apache tomcat實現負載均衡

一 實戰前軟體準備 apache2.2.13 tomcat6.0.18 兩個 二 mod jk.so 並複製到 apache 的modules 資料夾下 三 在conf httpd.conf 中最後一行新增 include d study apache2.2 conf mod jk.conf 新建 ...

Apache Tomcat實現負載均衡

工具環境 apchae 2.4 tomcat 8 mod jk 解壓apache和tomcat,mod jk.so放到apache下的modules目錄。在apache安裝目錄下conf目錄中找到http.conf配置檔案,在檔案最後加上 include conf mod jk.conf http....