Tomcat與Apache集成負載均衡交流_第1頁
Tomcat與Apache集成負載均衡交流_第2頁
Tomcat與Apache集成負載均衡交流_第3頁
Tomcat與Apache集成負載均衡交流_第4頁
Tomcat與Apache集成負載均衡交流_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、三文檔編號Tomcat與Apache集成-001文檔版本1.0密級1級擬制人溫傳波日期2008-9-25Tomcat與Apache集成變更說明日期版本變更位置變更說明作者2008-11-181.0創(chuàng)建溫傳波1 ApacheApache是Apache軟件基金會維護的一個處于世界領(lǐng)先地位的靜態(tài)Web服務(wù)器,再加上它是開源軟件,所以受到很多互聯(lián)網(wǎng)公司的青睞。使用Apache服務(wù)器,能給我們的Web應(yīng)用帶來以下的好處:靜態(tài)頁面的處理效率更高;1. 能使用Apache給集群的Web應(yīng)用服務(wù)器進行負載均衡;2. 良好的擴展性;做為一個靜態(tài)Web的服務(wù)器,它的工作機制也顯得相對簡單。當服務(wù)器啟動時,會在計算

2、機上的某個端口建立一個http或一個https協(xié)議的監(jiān)聽器來監(jiān)聽瀏覽器的請求,當收到請求后,讀取靜態(tài)文件的內(nèi)容,返回給客戶端的輸出流。軟件下載: Apache2.0.63下載 官方下載 部門下載軟件安裝:此處注意,如果你本機已經(jīng)裝了iis并且占用80端口,務(wù)必先在服務(wù)中將iis停止或禁用。軟件默認安裝即可。安裝過程中設(shè)置Network Domain和Server Name為localhost(選擇默認就可以,不需要做更改),設(shè)置你的email地址,下方會讓你選擇only for the current user或for all users。默認選擇for all users。這樣Apache就

3、會占用80端口,并且做為一個系統(tǒng)服務(wù)開機自動運行。 安裝完成之后,你在瀏覽器中輸入http:/localhost,將會看到Apache的成功頁面(顯示It works!)。Apache默認的主目錄是d:ApacheApache2,此時Apache,已經(jīng)運行,你可以在窗口的托盤看到他的圖標,雙擊圖標,在彈開的窗口選擇Open Apache Monitor,點Stop,停止Apaceh服務(wù)。2 TomcatTomcat也是Apache基金會維護的一個Web應(yīng)用服務(wù)器。它是一款很優(yōu)秀的Web應(yīng)用服務(wù)器,它的優(yōu)秀主要保存在如下幾個方面:它體積小,安裝使用方便;1. 有很強大的處理動態(tài)Web信息的能力;

4、2. 集群配置容易,很好的實現(xiàn)負載平衡;3. 能很好的與Apache其它產(chǎn)品(例如Apache)結(jié)合;4. 完全免費;做為專業(yè)的動態(tài)Web處理器,在處理態(tài)頁面的能力就沒有Apache那么優(yōu)秀了。但如果將所有的靜態(tài)頁面都交給動態(tài)Web應(yīng)用服務(wù)器處理,對資源顯得有些浪費。軟件下載: Tomcat5.5 下載: 官方下載 部門下載軟件安裝:1、 安裝JDK此處選擇默認安裝即可,(舊版本的JDK安裝完之后需要設(shè)置系統(tǒng)的環(huán)境變量,JRE和JDK1.5.0以后版本不設(shè)置也沒關(guān)系。),不過建議JDK安裝的路徑不要太深,不利于查找。2、 安裝Tomcat啟動安裝程序,為了方便查找選擇安裝目錄為d:Tomcat

5、,其余為默認。安裝成功后在瀏覽器中輸入http:/localhost:8080,出現(xiàn)Tomcat頁面表示安裝成功了。關(guān)于tomcat的設(shè)置已經(jīng)有很多非常詳細的文章,在此就不再詳述了。3 Apatche&Tomcat整合Apache和Tomcat后,我們的Web應(yīng)用可以得到如下明顯的好處:1、 由于將Tomcat進行了集群,帶來了更高的可用性;2、處理Web應(yīng)用的速度更快(多個Tomcat處理動態(tài)信息請求,Apache處理靜態(tài)請求);3、本文將詳細介紹關(guān)于tomcat和apache的整合過程、tomcat的集群配置、以及tomcat集群后文件的同步問題處理。整合Apache和Tomcat有3種方

6、法,分別是:JK連接器、AJP代理Http代理。下面將一一介紹。3.1 使用JK連接器整合整合tomcat和apache主要使用jk連接器的方式,這是最常見的方式,你可以在網(wǎng)上找到很多關(guān)于配置JK的網(wǎng)頁,當然最全的還是其官方所提供的文檔。JK本身有兩個版本分別是1和2,目前1最新的版本是1.2.19,而版本2早已經(jīng)廢棄了,以后不再有新版本的推出了,所以建議你采用版本1。JK是通過AJP協(xié)議與Tomcat服務(wù)器進行通訊的,Tomcat默認的AJP Connector的端口是8009。JK本身提供了一個監(jiān)控以及管理的頁面jkstatus,通過jkstatus可以監(jiān)控JK目前的工作狀態(tài)以及對到tom

7、cat的連接進行設(shè)置。JK的配置方法如下:1. 放入jk模塊共享文件將下載下來的mod_jk-1.2.27-httpd-2.0.63.so 文件改名為:mod_jk.so 并放入到%APACH_HOME%modules 目錄下。2. 更改Apache服務(wù)器的配置文件httpd.conf 打開%APACH_HOME%conf httpd.conf ,找到如下位置# DocumentRoot: The directory out of which you will serve your# documents. By default, all requests are taken from this

8、 directory, but# symbolic links and aliases may be used to point to other locations.#DocumentRoot D:/Apache2.0/Apache2/htdocs將DocumentRoot 參數(shù)改為我們站點的根目錄,例如:DocumentRoot D:/Projects/ccp/00src/ccpweb/web然后在httd.conf的結(jié)尾加上如下代碼:#加載jk的共享對象文件LoadModule jk_module modules/mod_jk.so#設(shè)指定tomcat監(jiān)聽配置文件地址JkWorkersF

9、ile D:/Tomcat5.5/conf/perties#指定tomcat監(jiān)聽配置文件地址(注意,該文件一定要存在,否則Apache不能啟動)JkLogFile D:/Tomcat5.5/logs/mod_jk2.log#指定JK日志輸出級別JkLogLevel info#配置虛擬主機 ServerAdmin localhost#配置Web站點的根目錄DocumentRoot D:/Projects/ccp/00src/ccpweb/web#設(shè)置虛擬主機的名稱ServerName localhost#設(shè)置靜態(tài)Web的首頁DirectoryIndex index.html

10、 index.htm index.jsp#出錯日志的位置ErrorLog logs/shsc-error_log.txt#關(guān)于apache與tomcat的連接日志位置CustomLog logs/shsc-access_log.txt common#指定jk的請求轉(zhuǎn)發(fā)url地址映射JkMount /servlet/* ajp13 JkMount /*.jsp ajp13 JkMount /*.do ajp13 JkMount /*.check ajp133. 編寫JK到Tomcat服務(wù)器的連接定義文件perties。在%TOMCAT_HOME%conf 目錄打開或新建wo

11、perties文件,按如下配置進行修改:#設(shè)置tomcat的根目錄workers.tomcat_home=D:Tomcat 5.5#設(shè)置jdk的根目錄workers.java_home=D:Javajdk1.5.0_05#如下所有參數(shù)采用默認ps=worker.list=ajp13 #模塊版本worker.ajp13.port=8009 #工作端口,若沒占用則不用修改worker.ajp13.host=localhost #本機,若上面的Apache主機不為localhost,作相應(yīng)修改worker.ajp13.type=ajp13 #類型worker.ajp13.lbfac

12、tor=1 #代理數(shù),不用修改JK配置好后,需要配置Tomcat下我們的站點了。4. 配置站點的Web Context 和數(shù)據(jù)源打開%TOMCAT_HOME%confservlet.xml中在最后的標簽前加入如下代碼 在如下的代碼中,通過Context標簽定義了站點,然后在其中的Resource標配置了在該站點中可以使用的jdbc數(shù)據(jù)源。(如果你不需要使用數(shù)據(jù)源,就不需要配置了)現(xiàn)在來測試一下看我們的配置是否成功:1, 打開Tomcat應(yīng)用服務(wù)器2, 打開Apache服務(wù)器3, 在url中輸入http:/localhost/ 就應(yīng)該能看到我們站點的主頁了。3.2 http代理方式整合這是利用A

13、pache自帶的mod_proxy模塊使用代理技術(shù)來連接Tomcat。在配置之前請確保是否使用的是2.2.x版本的Apache服務(wù)器。因為2.2.x版本對這個模塊進行了重寫,大大的增強了其功能和穩(wěn)定性。http_proxy模式是基于HTTP協(xié)議的代理,因此它要求Tomcat必須提供HTTP服務(wù),也就是說必須啟用Tomcat的HTTP Connector。一個最簡單的配置如下:1. 先取消注釋 %APACHE_HOME%confhttpd.conf 里面的如下兩行,讓http代理模塊工作。#連接tomcatLoadModule proxy_module modules/mod_proxy.soL

14、oadModule proxy_ajp_module modules/mod_proxy_http.so2. 在%APACHE_HOME%confhttpd.conf 文檔末尾加上如下代碼:ProxyPass /images/ ! ProxyPass / :8009/ ProxyPassReverse / :8009/如上的代碼主要用來映射請求的轉(zhuǎn)發(fā)路徑。3.3 ajp代理方式整合ajp_proxy和 http_proxy連接很相似,不過使用的是ajp的連接器,來進行tomcat和apache之間的連接。1. 先取消注釋 %APACH

15、E_HOME%confhttpd.conf 里面的如下兩行,讓http代理模塊工作。#連接tomcatLoadModule proxy_module modules/mod_proxy.soLoadModule proxy_ajp_module modules/mod_proxy_ajp.so2. 在%APACHE_HOME%confhttpd.conf 文檔末尾加上如下代碼:ProxyPass /images/ ! ProxyPass / ajp:/:8009/ ProxyPassReverse / ajp:/:8009/如上的代碼主要用來映射請求的轉(zhuǎn)發(fā)路

16、徑。雖然可以使用三種方式來整合tomcat和apache,但是強烈第一種方式,因為它受過大量Web應(yīng)用的檢驗。4 A&T集群為了在動態(tài)Web應(yīng)用中,很好的利用Apache的處理靜態(tài)信息的能力,整合tomcat和apache將是一個不二的選擇,如果能合理利用它們的優(yōu)點,將會給web應(yīng)用帶來更好的性能和更高的可靠性如果使用單Web應(yīng)用服務(wù)器來布置的話,那么當Web應(yīng)用的訪問量增大的時候,一個應(yīng)用服務(wù)器不能夠承受過多的請求,當一個服務(wù)器阻塞或癱瘓的話,就會影響到用戶正常的訪問。如果使用應(yīng)用服務(wù)器集群和負載均衡,就能夠很好的解決這些問題。典型的Apache和Tomcat的集群配置的拓樸圖如下:Tomc

17、atATomcatETomcat集群負載均衡器(Balancer),靜態(tài)Html (Apache2.0)客戶端通過上面的拓樸圖,我們可以發(fā)現(xiàn),Apache2.0在整個結(jié)構(gòu)中,不僅充當負載均衡器的作用,還處理靜態(tài)html請求。當負載均衡器收到來自客戶端的動態(tài)請求時,根據(jù)當前的集群服務(wù)器情況,使用一定機制來選擇某一動態(tài)服務(wù)器來處理當前的請求。它們的處理流程如下:1. Apache服務(wù)器接接收所有的請求。2. 當收到請求以后,根據(jù)當前配置的映射文件,判斷當前的請求是自己處理還是交給其它的服務(wù)器。3. 如果確定由Apache自己處理,則獲取請求的靜態(tài)文件,返回給客戶端瀏覽器。4. 如果需要由其它的We

18、b應(yīng)用服務(wù)器處理,則根據(jù)負載均衡的策略,將請求轉(zhuǎn)發(fā)到其它的服務(wù)器,此時Apahce相當于一個代理的服務(wù)器。4.1 集群環(huán)境配置(Windows)在磁盤上新建一個名稱叫做Tomcats的目錄用來存放所有需要集群運行的Tomcat目錄,將已安裝好的Tomcat5.5從根目錄開始,拷貝4份到tomcats目錄下,分別命名為Tomcat5.5A,Tomcat5.5B,Tomcat5.5C,Tomcat5.5D;上面所講的只是實驗環(huán)境,在Web應(yīng)用在實際布置的時候,每個Tomcat和Apache可能會安裝在不同的服務(wù)器上。如下是具體的配置過程:1、 安裝Apache服務(wù)器,參見 “第一章 Apache”

19、;2、 安裝Tomcat服務(wù)器,參見 “第二章 Tomcat”;3、 Tomcat集群配置;分別修改Tomcats目錄下的每個Tomcat的 confserver.xml文件,參照如下:#每個參于集群的Tomcat該Server Prot 號應(yīng)該不同 #每個參于集群的Tomcat的Http Connector Prot 號應(yīng)該不同 #每個參于集群的Tomcat的Ajp/1.3 Connector Prot 號應(yīng)該不同 #每個參于集群的Tomcat的jvmRoute名稱應(yīng)該不同#如下是關(guān)于Tomcat集群的配置 去掉默認的關(guān)于集群的配置注釋符號 !- #加上如下的注釋文字 !- #加上如下的注釋

20、文字 - - #去掉默認的關(guān)于集群的配置注釋符號 #配置Web應(yīng)用及數(shù)據(jù)源 如下給出每個Tomcat的配置端口號的建議,請參考上述文件進行配置Tomcat目錄Server ProthttpConnector portAJP/1.3 Port jvmRouteTomcat5.5A800580808009TomcatATomcat5.5B800680818010TomcatBTomcat5.5C800780828011TomcatCTomcat5.5D800880838012TomcatD配置好每個Tomcat后,進入第個的Tomcat的bin目錄,啟動tomcat.exe,在啟動的過程中,如果可

21、以看到如下的的啟動信息,則說明tomcat的集群配置成功了。4.2 Apache負載均衡1. 將下載下來的mod_jk-1.2.27-httpd-2.0.63.so 文件改名為:mod_jk.so 并放入到%APACH_HOME%modules 目錄下。如果有,就不用重復(fù)進行此次操作了。2.在Apache的conf目錄下新建perties的內(nèi)容如下:worker.list =Balancer#注意如下的商品號需要與上面的每個tomcat配置的商品號一致#=TomcatA=worker.TomcatA.port=8009 #ajp13 端口號,在tomcat下server.xm

22、l配置,默認8009worker.TomcatA.host= #tomcat的主機地址,如不為本機,請?zhí)顚慽p地址worker.TomcatA.type=ajp13 #連接Tomcat所使用的協(xié)議worker.TomcatA.lbfactor = 1 #server的加權(quán)比重,值越高,分得的請求的機會越多#=TomcatB=worker.TomcatB.port=8010 worker.TomcatB.host= worker.TomcatB.type=ajp13worker.TomcatB.lbfactor = 1 #=TomcatC=worker.Tom

23、catC.port=8011 worker.TomcatC.host= worker.TomcatC.type=ajp13worker.TomcatC.lbfactor = 1 #=TomcatD=worker.TomcatD.port=8012 worker.TomcatD.host= worker.TomcatD.type=ajp13worker.TomcatD.lbfactor = 1 #=controller,負載均衡控制器=worker.Balancer.type=lbworker.Balancer.balanced_workers=TomcatA

24、,TomcatB,TomcatC,TomcatD #指定分擔請求的tomcatworker.Balancer.sticky_session=1 #指定是否需要在Tomcat間復(fù)制session(可選配置)3. 最后在Apache的conf/httpd.conf的文件末尾加入如下代碼:LoadModule jk_module modules/mod_jk.soJkWorkersFile conf/pertiesJkLogFile logs/mod_jk2.logJkLogLevel errorServerAdmin localhostDocumentRoot D:/Proj

25、ects/ccp/00src/ccpweb/webServerName localhostDirectoryIndex index.html index.htm index.jspErrorLog logs/shsc-error_log.txtCustomLog logs/shsc-access_log.txt commonJkMount /* BalancerJkUnMount /*.html BalancerJkUnMount /*.jpg BalancerJkUnMount /*.gif BalancerJkUnMount /*.png BalancerJkUnMount /*.css

26、BalancerJkUnMount /*.js Balancer4. 最后需要在自己需要進行集群的應(yīng)用的Web.xml中加入如下配置web#如下是新添加的元素,表示session可以在集群中共享5.注意:在集群中的應(yīng)用需要放入到Session中的對象發(fā)源實現(xiàn)Serializable接口。6.測試啟動所有的tomcat和Apache服務(wù)器,訪問: http:/localhost/ 即可訪問我們的應(yīng)用。5 專題討論5.1 Tomcat集群中,是否需要Session共享?當多個tomcat進行集群后,為了保證當一個應(yīng)用癱瘓的時候,其它的應(yīng)用還能無間斷的為用戶服務(wù),那么就需要在每個集群的服務(wù)器上共享用

27、戶的Session,但當共享了用戶的sessioin以后,又會帶來一個問題,用戶的session需要在各個服務(wù)器上同步,如果session的變化很頻繁,那么為了同步session而帶來的網(wǎng)絡(luò)開銷和服務(wù)器的開銷也是不可忽視的。下面來結(jié)合兩種不同的情況進行分析。1. 共享Session發(fā)送消息給參與集群的所有服務(wù)器TomcatATomcatBTomcatCTomcatDSessionASessionBSessionASessionBSessionASessionBSessionASessionBSessionA.setAttribute(“a”,c)SessionA.setAttribute(“a”,c)SessionA.setAttribute(“a”,c)SessionA.setAttribute(“a”,c)用戶的請求導(dǎo)致Session屬性變化當某個用戶的請求導(dǎo)致Session的內(nèi)容發(fā)生變化的時候,需要向每個吃大鍋飯集群的服務(wù)器發(fā)送消息,告知Session的變化。結(jié)合上圖,來總結(jié)下使用共享Session的特點:優(yōu)點: 保存用戶Session,交互性好

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論