明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

使用mod_jk2.so整合Apache2.049與Tomcat5.019

[摘要]單獨(dú)使用Tomcat做JSP服務(wù)器,在工作效率上會(huì)有問題,并且所能承受的最大并發(fā)連接數(shù)也有一定的限制;經(jīng)測(cè)試,當(dāng)并發(fā)連接較多時(shí),Tomcat就會(huì)處于“僵死”狀態(tài),對(duì)后繼的請(qǐng)求連接失去響應(yīng)。所以現(xiàn)在就有了一些“整合”解決方案:將html與jsp的功能部分進(jìn)行明確分工,讓tomcat只處理jsp部分,...
單獨(dú)使用Tomcat做JSP服務(wù)器,在工作效率上會(huì)有問題,并且所能承受的最大并發(fā)連接數(shù)也有一定的限制;經(jīng)測(cè)試,當(dāng)并發(fā)連接較多時(shí),Tomcat就會(huì)處于“僵死”狀態(tài),對(duì)后繼的請(qǐng)求連接失去響應(yīng)。所以現(xiàn)在就有了一些“整合”解決方案:
將html與jsp的功能部分進(jìn)行明確分工,讓tomcat只處理jsp部分,其它的由apache,IIS等這些web server處理,由此大大節(jié)省了tomcat有限的工作“線程”。
當(dāng)然,使用IBM Websphere、BEA Weblogic、JBOSS等這些 J2EE服務(wù)器會(huì)是一個(gè)更好的解決方案,但只有應(yīng)用EJB才會(huì)發(fā)揮這些J2EE服務(wù)器的強(qiáng)大功能。
所以在這里,推薦Apache + Tomcat的“黃金組合”。在網(wǎng)上查找了一些資料,然后自己動(dòng)手實(shí)驗(yàn),折騰了近1個(gè)小時(shí),終于搞掂!現(xiàn)將具體過程總結(jié)如下,希望對(duì)大家能有所幫助:

我的運(yùn)行環(huán)境:Windows2k Server SP4 + J2SDK1.42 + Apache2.049 + Tomcat5.019 + SQL server2k
**準(zhǔn)備軟件:
1、Apache 2.0.49 2、Tomcat 5.0.19 3、Jk2連接器(mod_jk2.so)

**開始安裝:(這里的安裝路徑是任選的,只要視你的實(shí)際情況略做修改即可)
Apache安裝在H:\Apache\Apache2 下,監(jiān)聽端口 80;Tomcat在H:\Apache\Tomcat5.0 下,監(jiān)聽端口 8080;
兩者都以windows NT服務(wù)進(jìn)行安裝。
將mod_jk2.so復(fù)制到H:\Apache\Apache2\modules目錄下:
1.編輯H:\Apache\Apache2\conf\httpd.conf文件,在LoadModule那一段代碼中添加:
LoadModule jk2_module modules/mod_jk2.so
2.將AddDefaultCharset ISO-8859-1 改為 AddDefaultCharset GB2312 使Apache自動(dòng)支持中文顯示;
3.在“虛擬主機(jī)配置代碼段”中添加:(此段配置可以根據(jù)你的實(shí)際情況進(jìn)行修改)
<VirtualHost *:80>
ServerAdmin Pentium4xeon@etang.com
DocumentRoot "H:/Apache/Tomcat5.0/webapps/ROOT"
ServerName www.sdg.com
ErrorLog logs/sdg.com-error_log
CustomLog logs/sdg.com-access_log common
</VirtualHost>

**編寫workers2.properties文件并加入H:\Apache\Apache2\conf目錄,內(nèi)容如下:
[shm]
file=${serverRoot}/logs/shm.file
size=1048576
#The socket channel
[channel.socket:localhost:8009]
port=8009
host=127.0.0.1
#define the worker
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009
#uri mapping
[uri:/*.jsp]
worker=ajp13:localhost:8009

**由于tomcat5.019安裝時(shí)已經(jīng)有了 jk2.properties 文件,所以在這里就不用自己寫了。(或許這就是高版本的好處之一吧 *^_^*)

**編寫一個(gè)普通的html文件(index.html)與一個(gè)jsp文件(test.jsp),放在H:\Apache\Tomcat5.0\webapps\ROOT 下;現(xiàn)在最好重新啟動(dòng)一下計(jì)算機(jī)。
重新啟動(dòng)以后,啟動(dòng)apache和tomcat,http://www.sdg.com該是和http://www.sdg.com:8080一樣的了---顯示的都是index.html;
現(xiàn)在可以測(cè)試一下 test.jsp 了,http://www.sdg.com/test.jsp,怎么樣,順利通過了吧?

**下面測(cè)試Tomcat連接池部分,將網(wǎng)站的所有文件(html + jsp + javaBean + servlet)拷貝至H:\Apache\Tomcat5.0\webapps\ROOT 下,配置tomcat的server.xml文件,添加連接池。在我這兒,經(jīng)過測(cè)試,所有的功能部分都能正常工作。

下載:mod_jk2.so

*********后**********記*************************
1. 如果你的主頁是JSP頁面,你還需要配置一項(xiàng):

DirectoryIndex index.html index.html.var index.jsp

加上index.jsp就可以了 *^_^*

2. warning:
------------**整合以后,工作一直正常,但偶然打開了Apache的 error.log文件,被嚇出一身冷汗~~~~有N多的錯(cuò)誤,有一行最顯眼兒:
No such channel port:localhost:8019
.....Ajp13xx failed!

再仔細(xì)看了一下 worker2.properties 文件,發(fā)現(xiàn)里面有一項(xiàng)設(shè)置:
[ajp13:localhost:8019]
channel=channel.socket:localhost:8009

錯(cuò)誤指的8019端口就是這個(gè)了~ 隨即將 8019 改為 8009~ 現(xiàn)在再也沒出現(xiàn)這個(gè)問題了~看來網(wǎng)上的資料有些時(shí)候不一定是最準(zhǔn)確的......(可能是筆誤吧~~~) :P

**---由此給大家?guī)У牟槐悖疑畋砬敢?

3. 又發(fā)現(xiàn)一個(gè)配置上的“小問題”----

虛擬主機(jī)有一項(xiàng)配置:DocumentRoot項(xiàng),如果按照
DocumentRoot "H:\Apache\Tomcat5.0\webapps\ROOT" 配置的話,主機(jī)也能正常工作,但如果這時(shí)打開 logs/sdg.com-error_log 文件,就會(huì)發(fā)現(xiàn)有一行錯(cuò)誤提示:

**warning: "H:\\Apache\\Tomcat5.0\\webapps\\ROOT" doesn't exist!

經(jīng)嘗試,若改成:
DocumentRoot "H:/Apache/Tomcat5.0/webapps/ROOT"
則完全沒有任何警告信息出現(xiàn)在 error_log文件中~