結合Apache和Tomcat實現集群和負載均衡

2021-09-30 05:36:26 字數 2568 閱讀 5311

一:軟體環境

二:負載均衡

用apache進行分流,把請求按照權重以及當時負荷分tomcat1,tomcat2...去處理

1. 安裝apache,tomcat

我把apache安裝在d:/apache group/apache2

解壓兩分tomcat, 分別在 d:/apache group/tomcat5_1,d:/apache group/tomcat5_2

如果把不同版本的tomcat進行集群,目錄就可用tomcat4_3(版本為4.x的第三個tomcat伺服器),tomcat6_4(版本為6.x的第三個tomcat伺服器),這是unmi本人的習慣。

2.修改apache配置檔案http.conf

在apache安裝目錄下conf目錄中找到http.conf,在檔案最後加上下面一句話就可以了

include conf/mod_jk.conf

3. http.conf 同目錄下新建mod_jk.conf檔案,內容如下

如果還要指定*.do也進行分流就再加一行

jkmount /*.do controller

如果你想對所有的請求進行分流只需要寫成

jkmount /* controller

4. 在http.conf同目錄下新建 workers.properties檔案,內容如下(可能要去除 # 不在行首的注釋)

5. 修改tomcat配置檔案server.xml

改為8105" shutdown="shutdown">

2) 把http服務埠號由8080改為8180

找到8080"

把這裡的8080改為8180

3) 把ajp埠號由8009改為8109

找到8009"

把這裡的8009改為8109

4) 把 http **埠從8082改為8182(這個配置預設是被注釋掉的,可跳過這一步)

找到8082"

把這裡的8082改為8182

5) 編寫乙個測試 jsp

建立乙個目錄testcluster,裡面新建乙個test.jsp,內容為

只配置負載均衡還不行,還要session複製,也就是說其中任何乙個tomcat的新增的session,是要同步複製到其它tomcat, 集群內的tomcat都有相同的session

1. 修改tomcat1, tomcat2的server.xml,將集群部分配置,即對節點的在注釋符刪掉,並將tomcat2的4001埠改為4002,以避免與tomcat衝突,當然,如果是兩台電腦,是不用改埠的,去掉注釋符即可

即取消對如下處

前後的注釋標記,啟用該項配置,實現伺服器間的session複製。

2. 為 tomcat1和 tomcat2 增加 jvmroute(先跳過這一步,有精力可以試驗一下)

在 tomcat1 和 tomcat2 的 server.xml 檔案,找到

分別改為

jvmroute="tomcat1">

和jvmroute="tomcat2">

然而實際我配置的時候還不能加jvmroute屬性,配置了反而有問題。

重新整理瀏覽器視窗總是在某乙個tomcat控制台輸出形如

sessionid:154678fa6d4d0abd57658b750e7a3532.tomcat1  (在tomcat1視窗)

或者sessionid:3800571a532aecea7280f45361861ad4.tomcat2  (在tomcat2視窗)

由控制台列印的結果可以看出,sessionid在哪個tomcat上產生,那麼後續該會話的請求將總是會這個tomcat來處理。

並且注意到sessionid的形式比通常情況多了乙個字尾.tomcat1或.tomcat2,還搞不清楚是為什麼。

配置時請視實際情況而取捨。

3. 修改測試專案 testcluster

修改test.jsp,內容如下

4. 配置session複製

在testcluster目錄下新建web-inf目錄,web-inf下新建web.xml,內容如下

通過 http://localhost/testcluster/test.jsp 訪問,輸入名稱為 name, 值為 unmi,提交查詢,多重新整理幾次瀏覽器視窗,你將會看到在兩個tomcat視窗都列印出相同的sessionid及其中的值,並且每次重新整理後列印的結果都一樣的。

如果不為應用的web.xml加上 ,同樣測試上面那個test.jsp頁面,每次重新整理分流到不同的tomcat上都會產生不一樣的sessionid,在同乙個tomcat上也是間隔出現不同的sessionid。

更切身的體驗是一定要自己動手配置一遍,並仔細觀察兩個tomcat的控制上的輸出。因本文是參考 輕鬆實現apache,tomcat集群和負載均衡 的實踐經歷,該本中有較多的貼圖。

參考資料:1. 輕鬆實現apache,tomcat集群和負載均衡

2. apache+tomcat集群實踐(與上面方法有些異樣的配置方式) 

3. tomcat集群與負載均衡(關於集群與負載均衡的解釋)

4. 怎樣配製集群/session複製(tomcat5自帶文件的中文翻譯)

5. 怎樣配置負載均衡(tomcat5自帶文件的中文翻譯)

結合Apache和Tomcat實現集群和負載均衡

本文基本參考自 輕鬆實現apache,tomcat集群和負載均衡,經由實操經歷記錄而成,碰到些出入,以及個別地方依據個人的習慣,所以在一定程度上未能保持原文的完整性,還望原著者海涵。一 軟體環境 二 負載均衡 用apache進行分流,把請求按照權重以及當時負荷分tomcat1,tomcat2.去處理...

Apache和PHP結合 Apache預設虛擬主機

apache和php結合 1 先禁用之前的php7的模組 2 檢視下是否禁用php7模組 root centos7 usr local apache2.4 bin apachectl m rewrite module shared php5 module shared 只有乙個,說明禁用了 synt...

Karrigell和apache的結合

原文 因為python並不是特別為web開發而生,所以現在很多的python使用者都在開發能夠讓python執行於web的框架.karrigell就是現在為數眾多的python web框架之一.本文將對karrigell做簡要的介紹.簡介 karrigell是乙個功能強大且靈活的python web...