Web服務(wù)器基于Apache集群與負(fù)載均衡之Tomcat篇_第1頁
Web服務(wù)器基于Apache集群與負(fù)載均衡之Tomcat篇_第2頁
Web服務(wù)器基于Apache集群與負(fù)載均衡之Tomcat篇_第3頁
Web服務(wù)器基于Apache集群與負(fù)載均衡之Tomcat篇_第4頁
Web服務(wù)器基于Apache集群與負(fù)載均衡之Tomcat篇_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Web服務(wù)器基于 Apache集群與負(fù)載均衡之Tomcat篇編制: 桂雙林 日期: 2012年1月審核: 日期:批準(zhǔn): 日期:匯簽:Web服務(wù)器基于 Apache集群與負(fù)載均衡之Tomcat篇修訂記錄Tomcat 第1頁,共18頁Web服務(wù)器基于 Apache集群與負(fù)載均衡之Tomcat篇目 錄3.33.44.45.4 背景 . 3 集群背景與發(fā)展 . 3 集群與云計算 . 4 TOMCAT集群原理 . 5 Tomcat集群組件 . 5 Tomcat集群結(jié)構(gòu) . 5 安裝運行環(huán)境 . 6 準(zhǔn)備安裝軟件 . 6 安裝

2、Apache . 6 安裝Tomcat . 6 安裝JK組件 . 6 TOMCAT負(fù)載均衡 . 7 Tomcat端口配置 . 7 Apache配置 . 8 平均請求測試 . 10 邦定請求測試 . 12 TOMCAT集群 . 15 Apache配置 . 15 Tomcat配置 . 15 測試工程配置 . 16 集群之后測試 . 17 Tomcat 第2頁,共18頁Web服務(wù)器基于 Apache集群與負(fù)載均衡之Tomcat篇1 背景群集技術(shù)與研究方向目前已非常成熟,本文不對集群技術(shù)再做詳細(xì)介紹,也不對集群中的服務(wù)器硬件、網(wǎng)絡(luò)適配器、第五層交換、第七層交換技術(shù)做講述,直接以WEB集群的例子來展現(xiàn)集

3、群技術(shù)的簡單應(yīng)用。1.1 集群背景與發(fā)展本文的集群指WEB服務(wù)器集群,只是集群技術(shù)中很小的分支。隨著業(yè)務(wù)與需求的增長WEB服務(wù)器訪問量不斷的增加,客戶對產(chǎn)品的負(fù)載能力與穩(wěn)定性隨之提高,在單一WEB服務(wù)器的架構(gòu)中已經(jīng)難以達(dá)到用戶的需求,在進(jìn)一步提高產(chǎn)品的質(zhì)量外,需要尋求更可靠的技術(shù)支持。市場需要我們回答以下問題在產(chǎn)品穩(wěn)定的情況下,如何面對不斷增長的訪問量?在現(xiàn)有硬件的基礎(chǔ)下,如何更進(jìn)一步發(fā)揮硬件的性能?WEB應(yīng)用突發(fā)停止后,如何保證繼續(xù)為客戶提供服務(wù)?在更換新版本系統(tǒng)時,如果保證不間斷的提供服務(wù)?上面的問題是在所有WEB系統(tǒng)開發(fā)、運行、維護(hù)過程中都會碰到的問題。如果要解決這個問題則首先要采用:W

4、EB服務(wù)器系統(tǒng)集群技術(shù)。系統(tǒng)集群在技術(shù)上還有很多問題尚未解決,不過,對于基本的WEB集成解決方案業(yè)界已經(jīng)有了成熟的技術(shù)。采用集群技術(shù)之后解決WEB服務(wù)器容量帶來的巨大挑戰(zhàn),服務(wù)器資源終究是有限的,大容量服務(wù)器對用戶來說是一筆巨大的開支,也無法保障原來的投入,同時也解決不了根本問題。WEB系統(tǒng)集群技術(shù)為系統(tǒng)容量、擴展問題提供了良好的途徑,同時又能保護(hù)用戶的投資,它能把一組服務(wù)器通過一定形式組織起來,對外提供強大的服務(wù)能力,也能在同一服務(wù)器上部署多個相同系統(tǒng)集群充分挖掘服務(wù)器的潛力。這種結(jié)構(gòu)具有很高的性價比和良好的可靠性,并且可以通過增加虛擬服務(wù)器與物理服務(wù)器的方式不斷的擴充系統(tǒng)容量,因此,WEB

5、服務(wù)器集群已經(jīng)成為構(gòu)建大型網(wǎng)站系統(tǒng)的關(guān)鍵技術(shù)之一。 Tomcat 第3頁,共18頁Web服務(wù)器基于 Apache集群與負(fù)載均衡之Tomcat篇1.2 集群與云計算集群是一個非常專業(yè)的學(xué)科,專業(yè)化的集群需要非常特殊的硬件與軟件支持,在復(fù)雜的集群中有些幾乎需要設(shè)置相同的硬件,并且運行特殊的操作系統(tǒng)版本才能保證他們同步。如果在網(wǎng)絡(luò)底層進(jìn)行集群還需要使用特殊的網(wǎng)絡(luò)適配器來保證集群計算機的高速數(shù)據(jù)同步,要把不同地區(qū)的服務(wù)器集群還需要高速專用網(wǎng)絡(luò)的支持。數(shù)據(jù)同步方面,在集群WEB服務(wù)器時其中最典型的一點就是服務(wù)器間的Session同步問題。集群對各種條件要求比較高,它能實現(xiàn)高可用性,高穩(wěn)定性,虛擬存儲管理

6、,服務(wù)器故障平滑轉(zhuǎn)移及災(zāi)難恢復(fù)等復(fù)雜的應(yīng)用,但是復(fù)雜的集群實現(xiàn)成本非常高,又難以對外提供商業(yè)化服務(wù)是阻礙其發(fā)展的重要原因。云計算是從集群技術(shù)、網(wǎng)絡(luò)計算、分布式計算等技術(shù)發(fā)展起來的一種新應(yīng)用服務(wù)形式,是建立在原來的基礎(chǔ)之上隔離了集群技術(shù)的復(fù)雜性,直接以服務(wù)的形式交付給客戶使用。從應(yīng)用上來說云是位于集群、分布式技術(shù)等等的上層,它把硬件、軟件、操作系統(tǒng)與用戶隔離,用戶看到的只是公開的網(wǎng)絡(luò)服務(wù)、是可選擇的網(wǎng)絡(luò)商品,不需要了解背后采用什么技術(shù)、使用什么操作系統(tǒng)等等。隔離了復(fù)雜技術(shù)的云計算,重點關(guān)注的是對外提供高質(zhì)量的商業(yè)服務(wù)。Tomcat 第4頁,共18頁Web服務(wù)器基于 Apache集群與負(fù)載均衡之T

7、omcat篇2 TOMCAT集群原理2.1 Tomcat集群組件操作系統(tǒng):WindowsHttp服務(wù)器:ApacheApache模塊:Mod_JKWeb服務(wù)器:Tomcat2.2 Tomcat集群結(jié)構(gòu)Tomcat 第5頁,共18頁Web服務(wù)器基于 Apache集群與負(fù)載均衡之Tomcat篇3 安裝運行環(huán)境3.1 準(zhǔn)備安裝軟件操作系統(tǒng):windows(本文只測試了windows環(huán)境)Http服務(wù)器:Apache 版本為httpd-2.2.21-win32-x86-openssl-0.9.8r.msi,下載地址Apache模塊:Mod_JK 版本為mod_jk-1.2.31-httpd-2.2.3

8、.so,下載地址 注意下載版本JK后所注明的http服務(wù)器版本一定要與 Apache版本相同或相近。Web服務(wù)器:Tomcat版本這里采用 Tomcat5.0.28是比較老的版本,也可以采用 5.5.X或6.X等新版本,下載地址 / 下載壓縮版,這樣便于復(fù)制安裝。3.2 安裝Apache下載完成之后,運行程序安裝Apache,只要按默認(rèn)設(shè)置進(jìn)行安裝即可,安裝位置可以自己選擇,本文安裝目錄為:D:Program FilesApache Software FoundationApache2.2。默認(rèn)安配置裝的Apache是 80端口為HTTP端口。3.

9、3 安裝Tomcat本文要集群三個獨立的Tomcat,所以把下載后的壓縮包解壓后復(fù)制三份到不同目錄,本文目錄為:D:Tomcat5.0_8080; D:Tomcat5.0_8081 ; D:Tomcat5.0_8082 。3.4 安裝JK組件以本文為例把JK組件包mod_jk-1.2.31-httpd-2.2.3.so復(fù)制到Apache目錄D:Program FilesApache Software FoundationApache2.2modules 下。Tomcat 第6頁,共18頁Web服務(wù)器基于 Apache集群與負(fù)載均衡之Tomcat篇4 TOMCAT負(fù)載均衡4.1 Tomcat端口

10、配置安裝環(huán)境之后,本文中Apache服務(wù)器要與3個Tomcat進(jìn)行集成,為方便測試3個Tomcat都運行在同一臺機器上,為了解決Tomcat端口沖突問題必須重新進(jìn)行設(shè)置,端口分配如下表:如果三臺服務(wù)器運行在不同的電腦中則不需要修改。找到Tomcat配置文件修改端口,Tomcat配置文件目錄為Tomcat5.0confserver.xml依次修改D:Tomcat5.0_8080 , D:Tomcat5.0_8081 , D:Tomcat5.0_8082中的配置文件,用記事本打開文件直接采用查找替換方式,按上表把原來的四個端口修改成新值。注意事項:server.xml 配置文件中proxy 的80

11、20端口內(nèi)容是被注釋掉的,需要去掉注釋。 完成修改后,測試運行3個Tomcat如下圖:Tomcat第7頁,共18頁Web服務(wù)器基于 Apache集群與負(fù)載均衡之Tomcat篇正常啟動后,請注意各服務(wù)器的端口是不是正確的配置,如果沒問題,則這部分配置順利完成。4.2 Apache配置1 找到Apache服務(wù)器配置文件D:Program FilesApache Software FoundationApache2.2confhttpd.conf2 用記事本打開httpd.conf文件,在最后增加一行代碼:Include conf/mod-jk.conf3 在httpd.conf文件同目錄下創(chuàng)建mo

12、d-jk.conf 文件,全部代碼如下:#加載mod_jk模塊,注意名稱與modules目錄下的文件名保持一致.LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so#指定perties文件目錄.JkWorkersFile conf/perties#指定那些請求交給tomcat處理,controller為pertise文件里指定的負(fù)載控制器. JkMount /* controller#JkMount /*.html controller#JkMount /*.jsp

13、controller#JkMount /*.do controllerJkMount /servlet/* controller#JkUnMount /index.html controller#關(guān)掉主機Lookup, 如果為on很影響性能.HostnameLookups Off4 在httpd.conf文件同目錄下創(chuàng)建pertise 文件,全部代碼如下:Tomcat 第8頁,共18頁Web服務(wù)器基于 Apache集群與負(fù)載均衡之Tomcat篇worker.list=controller,tomcat1,tomcat2,tomcat3 #server群集列表,tomcat

14、名稱與Tomcat配置Service.xml的jvmRoute名稱一致#=tomcat1=worker.tomcat1.port=8020 #指定 tomcat1 服務(wù)器 AJP 的端口,默認(rèn)為8009worker.tomcat1.host=localhost #指定 tomcat1 服務(wù)器IP 或域名worker.tomcat1.type=ajp13 #指定 tomcat1與apache AJP通訊協(xié)議worker.tomcat1.lbfactor=1 #指定負(fù)載平衡因數(shù),只有啟用了負(fù)載平衡才有用.#=tomcat2=worker.tomcat2.port=8021 #指定 tomcat2

15、服務(wù)器 AJP 的端口,默認(rèn)為8009worker.tomcat2.host=localhost #指定 tomcat2 服務(wù)器IP 或域名worker.tomcat2.type=ajp13 #指定 tomcat2與apache AJP通訊協(xié)議worker.tomcat2.lbfactor=1 #指定負(fù)載平衡因數(shù),只有啟用了負(fù)載平衡才有用.#=tomcat3=worker.tomcat3.port=8022 #指定 tomcat3 服務(wù)器 AJP 的端口,默認(rèn)為8009worker.tomcat3.host=localhost #指定 tomcat3 服務(wù)器IP 或域名worker.tomca

16、t3.type=ajp13 #指定 tomcat3與apache AJP通訊協(xié)議worker.tomcat3.lbfactor=1 #指定負(fù)載平衡因數(shù),只有啟用了負(fù)載平衡才有用.#=controller 負(fù)載平衡控制器=worker.controller.type=lb #指定 controller 類型worker.controller.balanced_workers=tomcat1,tomcat2,tomcat3 #指定負(fù)載平衡的tomcat worker.controller.sticky_session=true #指定是否粘性 sessionworker.controller.st

17、icky_session_force=false# session 配置說明:#當(dāng)sticky_session,sticky_session_force都為true時不復(fù)制session,#sticky_session_force=false 指集群中某臺服務(wù)器多次請求沒有響應(yīng), 則轉(zhuǎn)發(fā)到其它服務(wù)器處理,Tomcat 第9頁,共18頁Web服務(wù)器基于 Apache集群與負(fù)載均衡之Tomcat篇#sticky_session=false 不使用粘性session,同時配置不復(fù)制session時, 注意轉(zhuǎn)發(fā)請求后可能會找不到原來的session.完成后啟動Apache 在狀態(tài)欄中可看到已集成 JK

18、模塊,如圖所示:雖然已經(jīng)看到集成了JK模塊,但是還不知道是不是順利完成了負(fù)載均衡配置,下面我們進(jìn)行測試。4.3 平均請求測試確保上述步驟操作正確后,接下來部署一下工程進(jìn)行測試。1 部署一個test測試工程假設(shè)大家都知道部署。2 編寫一個jsp測試頁在test工程的根目錄新建一個test.jsp測試文件,全部代碼如下:<% page language="java" contentType="text/html;charset=UTF-8"%><% /應(yīng)用程序地址.String sId =request.getSession().getId

19、();String path = request.getContextPath();Tomcat 第10頁,共18頁Web服務(wù)器基于 Apache集群與負(fù)載均衡之Tomcat篇String basePath =request.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path; /應(yīng)用程序物理目錄.String appPath = request.getSession().getServletContext().getRealPath("/"

20、;);System.out.println(appPath+" -Test JSP-");%><html><head><title>測試JSP頁面</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body><form method="POST" action="" name=&quo

21、t;form1"><table width="100%" border="1" cellspacing="2" cellpadding="3"><tr><th>測試JSP頁面:</th></tr></table><table width="100%" border="1" cellspacing="2" cellpadding="3">&

22、lt;tr><th>名稱:</th> <th>內(nèi)容:</th></tr><tr><td>首頁地址:</td> <td><%=basePath%></a></td></tr><tr><td>WEB程序目錄:</td> <td><%=appPath%></td></tr><tr><td>Session Id</td> &

23、lt;td><%=sId%></td></tr><tr><td></td> <td></td></tr></table></body></html>3 依次啟動Apache,Tomcat1,Tomcat3,Tomcat3訪問測試頁 http:/localhost/test/test.jsp 顯示如下圖。Tomcat 第11頁,共18頁Web服務(wù)器基于 Apache集群與負(fù)載均衡之Tomcat篇對測試頁進(jìn)行多次訪問,本例測試訪問6次,每次檢查3個T

24、omcat服務(wù)器的控制臺窗口,發(fā)現(xiàn)一個現(xiàn)象:如果第一次訪問是Tomcat1,第二次變?yōu)門omcat2,第三次則是Tomcat3,第四次又回到Tomcat1,3個服務(wù)器是進(jìn)行輪流處理請求,現(xiàn)在已經(jīng)實現(xiàn)了負(fù)載均衡的目的。現(xiàn)在已經(jīng)完成3個WEB服務(wù)器負(fù)載均衡配置,并且3個服務(wù)器是平均分配用戶請求。4.4 邦定請求測試邦定請求方式,就是定義首次請求的服務(wù)器為最高優(yōu)先分配,只要客戶沒有關(guān)閉IE,以后每一Tomcat 第12頁,共18頁Web服務(wù)器基于 Apache集群與負(fù)載均衡之Tomcat篇次請求都交給同一服務(wù)器處理。這樣做的好處是用戶只需登錄一次,以后都是同一服務(wù)器處理,登錄Session沒有改變,

25、不需要進(jìn)行再次登錄。打開server.xml 找到如圖中配置:<Engine name="Catalina" defaultHost="localhost" debug="0"> 修改成:<Engine name="Catalina" defaultHost="localhost" debug="0" jvmRoute="tomcat1"> 結(jié)果如圖。測試的三個服務(wù)器的jvmRoute配置名稱不能相同,請按下表修改。配置完成后,依次

26、啟動Apache,Tomcat1,Tomcat3,Tomcat3訪問測試頁 http:/localhost/test/test.jsp 注意:Tomcat1,Tomcat3,Tomcat3 的名稱在必須與 pertise文件里的名稱配對。第一次訪問如下圖,SessionId與前面的不一樣,在后面增加了Tomcat1的名稱:第二次訪問如下圖,明顯可以看出是訪問同一服務(wù)器,并且SessionId都相同:Tomcat 第13頁,共18頁Web服務(wù)器基于 Apache集群與負(fù)載均衡之Tomcat篇經(jīng)過測試,在沒有關(guān)閉IE的情況下多次訪問都是提交給同一服務(wù)器處理,并且Session

27、Id保持不變,其它的服務(wù)器沒有接到請求,請看Tomcat1后臺窗口:為了驗證多用戶情況,又重新打開一個新的IE,發(fā)現(xiàn)新IE請求交給了Tomcat2處理,并且新IE多次刷新請求后,仍然是交給Tomcat2處理。到現(xiàn)在Tomcat負(fù)載均衡配置已順利完成,下面講述怎么樣把這三個獨立的WEB服務(wù)器進(jìn)行集群。Tomcat 第14頁,共18頁Web服務(wù)器基于 Apache集群與負(fù)載均衡之Tomcat篇5 TOMCAT集群雖然上面已經(jīng)完成了負(fù)載均衡,但是三個服務(wù)器還是獨立工作,沒有形成一個整體,他們之間沒有同步數(shù)據(jù),基本的Session也沒有復(fù)制,如果其中一個服務(wù)器關(guān)閉,請求會轉(zhuǎn)發(fā)到另一個活動的服務(wù)器,新的

28、服務(wù)器是沒有原來的Session數(shù)據(jù),客戶必須再次登錄,這種情況不能在實際應(yīng)用發(fā)生,要解決這個問題,需要用到Web服務(wù)器集群來實現(xiàn)Session在所有服務(wù)器上同步復(fù)制。5.1 Apache配置在上一節(jié)中Apache基本已經(jīng)配置完成,這里不需要再修改,最主要的是配置 pertise 文件,這里只對重要的部分進(jìn)行說明。配置是否使用粘性 Session的選項:worker.controller.sticky_session。類似幫定,指某web服務(wù)器產(chǎn)生的Session,在下次客戶用相同Session再訪問服務(wù)器時仍然轉(zhuǎn)發(fā)到相同的web服務(wù)器(必須指定好web服務(wù)器路由配置才行,就是配置jvmRou

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論