一、架構:
users --> apache web server + mod_jk -->tomcat instance
1、mode_jk介紹:
它是早期mod_jserv的替代品,是乙個全新負責處理apache和tomcat通訊的apache外掛程式。
apache載入jk模組,通過ajp13(apache jserv protocol version 1.3)協議與tomcat通訊;
2、apache + jk 負載均衡器作用?
1)它實現了負載均衡演算法,通過將請求分發到不同的伺服器來達到高可用性和高效的處理能力;
2)監控集群中每乙個tomcat的健康狀態,來防止將請求**到乙個失敗的節點;
3)它會使用「會話粘滯」技術以確保來自同乙個使用者的請求會被**到同乙個伺服器;
二、環境搭建:
由於是集群,這裡我們安裝2個tomcat,並命名tomcat根目錄分別為tomcata和tomcatb,如果使用預設配置,就不能同時啟動兩個tomcat了,我們必須修改其中乙個tomcat的配置,例如修改tomcatb。找到tomcatb的conf目錄的server.xml,將其中出現80位置全部修改為90(此時html埠變為9080,而ajp協議變為9009,應用程式主要是通過html埠訪問,而apache是通過ajp協議與tomcat通訊的);
三、配置:
1、實現apache請求**多個tomcat
1)在apache的安裝目錄下的modules目錄下,找到httpd.conf檔案,開啟此檔案,搜尋#loadmodule,在這些遮蔽資訊#loadmodule後加上
讓httpd載入jk_module模組。
再在該檔案最後加上如下內容:
#告訴apache workers檔案的位置
jkworkersfile "%apachehomedir%/conf/workers.properties"
#日誌jklogfile "%apachehomedir%/logs/mod_jk.log"
#日誌級別
jkloglevel warn
#路徑滿足/jsp-examples 或 /jsp-examples/* 給work1處理
jkmount /jsp-examples worker1
jkmount /jsp-examples/* worker1
#路徑滿足/servlets-examples 或 /servlets-examples/* 給work2處理
jkmount /servlets-examples worker2
jkmount /servlets-examples/* worker2
2)在 "%apachehomedir%/conf 目錄下建立workers.properties檔案,內容如下:
注意:由於apache使用的是80埠,通過80埠可以訪問到兩個tomcat中自帶的示例應用程式,故apache完成了請求從apache到tomcat的**;
2、實現負載均衡與會話粘滯:
1)修改 "%apachehomedir%/conf/workers.properties" 檔案,其內容為:
# balancer 為邏輯名
worker.list = balancer
# worker.balancer要與上面的balancer同名;lb=load balance
worker.balancer.type = lb
# 承擔分發工作的tomcat
worker.balancer.balance_workers = worker1,worker2
# b策略=busy 根據繁忙係數來決定請求分配
worker.balancer.method = b
# 說明這個負載均衡器會實現會話粘滯功能(可參考官方說明,各版本tomcat配置會不一樣)
worker.balancer.sticky_session = 1
worker.worker1.port = 8009
# 遠端伺服器則修改為伺服器的ip
worker.worker1.host = localhost
worker.worker1.type = ajp13
# 負載均衡器根據這引數來決定該伺服器使用的頻率
worker.worker1.lbfactor = 1
worker.worker2.port = 9009
worker.worker2.host = localhost
worker.worker2.type = ajp13
worker.worker2.lbfactor = 1
2)為tomcat的engine配置jvmroute引數
開啟tomcat 的 server.xml檔案,找到engine,在此標籤內加上jvmroute="worker1",另外乙個tomcat加上jvmroute="worker2"
此處的work1和work2要與apache 的 conf/workers.properties配置的work名稱對應,這樣apache才知道是哪個tomcat來處理請求;
3)修改apache的httpd.xml檔案,其內容如下:
jkmount /jsp-examples balancer
jkmount /jsp-examples/* balancer
jkmount /servlets-examples balancer
jkmount /servlets-examples/* balancer
從而將之前交給work1和work2的請求,全部交給balancer來處理。
4)修改tomcat的server.xml檔案,去掉cluster注釋:
分別修改兩個tomcat的server.xml檔案,分別去掉cluster注釋,並修改tcplistenport配置,將其中乙個改為4002即可。
5)配置集群應用:
找到你要集群的專案,web.xml檔案
apache2 2 tomcat實現負載均衡
無論是分布式,資料快取,還是負載均衡,無非就是改善 的效能瓶頸,在 原始碼不做優化的情況下,負載均衡可以說是最直接的手段了 其實拋開這個名詞,放開了說,就是希望使用者能夠分流,也就是說把所有使用者的訪問壓力分散到多台伺服器上,也可以分散到多個tomcat裡,如果一台伺服器裝多個tomcat,那麼即使...
PHP5 APACHE2 2配置成功案例
phpinfo 4 執行http localhost test.php 如果成功,則應該看到乙個含有php徽標的網頁,其中包含大量設定和其他資訊 那麼恭喜你 備註 如果不能執行,使用傳統的模組化方法安裝php5.1.apache 2.2.2 後不能啟動,原因 php壓縮包裡的php5apache2....
PHP5 APACHE2 2配置成功案例
php5 apache2.2配置成功案例 phpinfo 4 執行http localhost test.php 如果成功,則應該看到乙個含有php徽標的網頁,其中包含大量設定和其他資訊 那麼恭喜你 備註 如果不能執行,使用傳統的模組化方法安裝php5.1.apache 2.2.2 後不能啟動,原因...