apache+jk+tomcat負(fù)載均衡(windows系統(tǒng))
本操作步驟部分仿照網(wǎng)上案例,再加上自己的一些說(shuō)明;(測(cè)試通過(guò)的)
第一步:準(zhǔn)備工作下載相關(guān)軟件
1、Apache HTTP Server (httpd) 2.2.17下載
http://labs.renren.com/apache-mirror//httpd/binaries/win32/httpd-2.2.17-win32-x86-openssl-0.9.8o.msi
2、Tomcat6.0.29下載
http://labs.renren.com/apache-mirror/tomcat/tomcat-6/v6.0.29/bin/apache-tomcat-6.0.29-windows-x86.zip
3、mod_jk-1.2.31-httpd-2.2.3:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.31/mod_jk-1.2.31-httpd-2.2.3.so
第二步:分別安裝tomcat、apache,在安裝apache時(shí)候注意:
1、此處注意,如果你本機(jī)已經(jīng)裝了iis并且占用80端口,務(wù)必先在服務(wù)中將iis停止或禁用。軟件默認(rèn)安裝即可。安裝過(guò)程中設(shè)置Network Domain和Server Name為localhost,
設(shè)置你的email地址,下方會(huì)讓你選擇only for the current user或for all users。默認(rèn)選擇for all users。這樣Apache就會(huì)占用80端口,并且做為一個(gè)系統(tǒng)服務(wù)開(kāi)機(jī)自運(yùn)
行。
2、安裝完后,在系統(tǒng)"拖盤"處看見(jiàn)Apache的羽毛圖標(biāo),如果機(jī)子本身已安裝IIS,此時(shí)圖標(biāo)上為紅色的圓點(diǎn),是因?yàn)镮IS和Apache在端口80上的重復(fù),修改IIS端口為其它端口.或修
改apache\conf下的httped.conf文件,修改"Listen 80" 中的80為其它.(本配修改了IIS端口,使得Apache的端口為80)
3、安裝完成后,進(jìn)入D:\Program Files\Apache Software Foundation\Apache2.2\bin,雙擊ApacheMonitor.exe,啟動(dòng)apache,在地址欄輸入:http://localhost,顯示it work!說(shuō)明成功了。
第三步:Jk和apache的整合:
把mmod_jk-1.2.31-httpd-2.2.3.so拷貝到D:\Program Files\Apache2.2\modules\下
在D:\Program Files\apache2.2\conf\httpd.conf文件最后加入
#設(shè)置Apache與Tomcat之間的連接,讓Apache遇到j(luò)sp文件時(shí),在后臺(tái)將其交由Tomcat去處理
#此處mod_jk的文件為你下載的文件
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so
#指定tomcat監(jiān)聽(tīng)配置文件地址
JkWorkersFile conf/workers.properties
#指定日志存放位置
JkLogFile logs/mod_jk.log
#指定日志級(jí)別
JkLogLevel debug
#不可缺少,否則只有一個(gè)tomcat能運(yùn)行
NameVirtualHost *:80
第四步:apache和tomcat的整合:
1、首先配置tomcat的虛擬目錄,打開(kāi)tomcat/conf/server.xml文件,在
同理,如果有多個(gè)tomcat,同樣需要更改engine、添加虛擬目錄、另外別忘更改tomcat端口;
2、在\apache2.2\conf目錄下,新建workers.properties文件,添加
Java代碼
- worker.list=loadbalancer
- # Define the first node...
- worker.tomcatA.port=8009#Tomcat worker主機(jī)的偵聽(tīng)端口。
- worker.tomcatA.host=localhost#它定義了此worker的負(fù)載平衡權(quán)值。
- worker.tomcatA.type=ajp13
- worker.tomcatA.lbfactor=1
- worker.tomcat12.connection_pool_timeout=750
- worker.tomcat12.socket_keepalive=0#此屬性將告訴操作系統(tǒng)在未激活的連接中發(fā)送KEEP_ALIVE信息(發(fā)送間隔時(shí)間依賴于操作系統(tǒng)的設(shè)置,一般為120秒),這樣將防止防火墻切斷未激活的網(wǎng)絡(luò)連接。
- worker.tomcat12.socket_timeout=300000#此屬性說(shuō)明連接在未激活的狀況下持續(xù)多久,web server將主動(dòng)切斷之。
- worker.tomcat12.connect_timeout=10000# 此屬性說(shuō)明了web server等待PONG回應(yīng)的時(shí)間(以ms為單位)。
- worker.tomcat12.reply_timeout=330000#此屬性告訴web server在接到遠(yuǎn)端的Tomcat已死并實(shí)時(shí)的切換到集群中的另外一個(gè)Tomcat的回應(yīng)之前等待一段時(shí)間。
- worker.tomcat12.reply_timeout=0#此屬性說(shuō)明了web server在檢測(cè)到Tomcat失敗后如何進(jìn)行恢復(fù)工作(默認(rèn)就是0,全部恢復(fù))
- # Define the second node...
- worker.tomcatB.port=8019
- worker.tomcatB.host=localhost
- worker.tomcatB.type=ajp13
- worker.tomcatB.lbfactor=1
- worker.tomcat12.connection_pool_timeout=750
- worker.tomcat12.socket_keepalive=0
- worker.tomcat12.socket_timeout=300000
- worker.tomcat12.connect_timeout=10000
- worker.tomcat12.reply_timeout=330000
- # Now we define the load-balancing behaviour
- worker.loadbalancer.type=lb
- worker.retries=3
- worker.loadbalancer.balance_workers=tomcatA,tomcatB
- worker.loadbalancer.sticky_session=0#表述是否將對(duì)SESSION ID的請(qǐng)求路由回到相同的Tomcat worker。(默認(rèn)是0,session不復(fù)制)
內(nèi)容;
第五步:配置虛擬主機(jī):
1、打開(kāi)D:\Program Files\apache2.2\conf\httpd.conf文件,在最后增加:
Java代碼
- #設(shè)置虛擬主機(jī)
- ServerAdmin localhost
- #路徑中不能存在空格
- DocumentRoot D:\JAVA\testSpace\SpringTest\WebRoot
- ServerName localhost
- ErrorLog logs/shsc-error_log.txt
- CustomLog logs/shsc-access_log.txt common
"D:\JAVA\testSpace\SpringTest\WebRoot"> - Options Indexes FollowSymLinks
- AllowOverride None
- Order allow,deny
- Allow from all
- #讓Apache支持對(duì)servlet傳送,用以Tomcat解析
- JkMount /servlet/* loadbalancer
- #讓Apache支持對(duì)jsp傳送,用以Tomcat解析
- JkMount /*.jsp loadbalancer
- #讓Apache支持對(duì).do傳送,用以Tomcat解析
- JkMount /*.action loadbalancer
好了,到這一步,就已經(jīng)完成了,這個(gè)時(shí)候你用不同瀏覽器訪問(wèn)http://localhost,如果他們是多個(gè)tomcat輪循訪問(wèn),那就配置成功了。
【編輯推薦】