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
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....