使用mod_jk2.so整合Apache2.049與Tomcat5.019
發(fā)表時間:2024-06-01 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]單獨使用Tomcat做JSP服務(wù)器,在工作效率上會有問題,并且所能承受的最大并發(fā)連接數(shù)也有一定的限制;經(jīng)測試,當并發(fā)連接較多時,Tomcat就會處于“僵死”狀態(tài),對后繼的請求連接失去響應(yīng)。所以現(xiàn)在就有了一些“整合”解決方案:將html與jsp的功能部分進行明確分工,讓tomcat只處理jsp部分,...
單獨使用Tomcat做JSP服務(wù)器,在工作效率上會有問題,并且所能承受的最大并發(fā)連接數(shù)也有一定的限制;經(jīng)測試,當并發(fā)連接較多時,Tomcat就會處于“僵死”狀態(tài),對后繼的請求連接失去響應(yīng)。所以現(xiàn)在就有了一些“整合”解決方案:
將html與jsp的功能部分進行明確分工,讓tomcat只處理jsp部分,其它的由apache,IIS等這些web server處理,由此大大節(jié)省了tomcat有限的工作“線程”。
當然,使用IBM Websphere、BEA Weblogic、JBOSS等這些 J2EE服務(wù)器會是一個更好的解決方案,但只有應(yīng)用EJB才會發(fā)揮這些J2EE服務(wù)器的強大功能。
所以在這里,推薦Apache + Tomcat的“黃金組合”。在網(wǎng)上查找了一些資料,然后自己動手實驗,折騰了近1個小時,終于搞掂!現(xiàn)將具體過程總結(jié)如下,希望對大家能有所幫助:
我的運行環(huán)境:Windows2k Server SP4 + J2SDK1.42 + Apache2.049 + Tomcat5.019 + SQL server2k
**準備軟件:
1、Apache 2.0.49 2、Tomcat 5.0.19 3、Jk2連接器(mod_jk2.so)
**開始安裝:(這里的安裝路徑是任選的,只要視你的實際情況略做修改即可)
Apache安裝在H:\Apache\Apache2 下,監(jiān)聽端口 80;Tomcat在H:\Apache\Tomcat5.0 下,監(jiān)聽端口 8080;
兩者都以windows NT服務(wù)進行安裝。
將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自動支持中文顯示;
3.在“虛擬主機配置代碼段”中添加:(此段配置可以根據(jù)你的實際情況進行修改)
<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安裝時已經(jīng)有了 jk2.properties 文件,所以在這里就不用自己寫了。(或許這就是高版本的好處之一吧 *^_^*)
**編寫一個普通的html文件(index.html)與一個jsp文件(test.jsp),放在H:\Apache\Tomcat5.0\webapps\ROOT 下;現(xiàn)在最好重新啟動一下計算機。
重新啟動以后,啟動apache和tomcat,http://www.sdg.com該是和http://www.sdg.com:8080一樣的了---顯示的都是index.html;
現(xiàn)在可以測試一下 test.jsp 了,http://www.sdg.com/test.jsp,怎么樣,順利通過了吧?
**下面測試Tomcat連接池部分,將網(wǎng)站的所有文件(html + jsp + javaBean + servlet)拷貝至H:\Apache\Tomcat5.0\webapps\ROOT 下,配置tomcat的server.xml文件,添加連接池。在我這兒,經(jīng)過測試,所有的功能部分都能正常工作。
下載:mod_jk2.so
*********后**********記*************************
1. 如果你的主頁是JSP頁面,你還需要配置一項:
DirectoryIndex index.html index.html.var index.jsp
加上index.jsp就可以了 *^_^*
2. warning:
------------**整合以后,工作一直正常,但偶然打開了Apache的 error.log文件,被嚇出一身冷汗~~~~有N多的錯誤,有一行最顯眼兒:
No such channel port:localhost:8019
.....Ajp13xx failed!
再仔細看了一下 worker2.properties 文件,發(fā)現(xiàn)里面有一項設(shè)置:
[ajp13:localhost:8019]
channel=channel.socket:localhost:8009
錯誤指的8019端口就是這個了~ 隨即將 8019 改為 8009~ 現(xiàn)在再也沒出現(xiàn)這個問題了~看來網(wǎng)上的資料有些時候不一定是最準確的......(可能是筆誤吧~~~) :P
**---由此給大家?guī)У牟槐悖疑畋砬敢?
3. 又發(fā)現(xiàn)一個配置上的“小問題”----
虛擬主機有一項配置:DocumentRoot項,如果按照
DocumentRoot "H:\Apache\Tomcat5.0\webapps\ROOT" 配置的話,主機也能正常工作,但如果這時打開 logs/sdg.com-error_log 文件,就會發(fā)現(xiàn)有一行錯誤提示:
**warning: "H:\\Apache\\Tomcat5.0\\webapps\\ROOT" doesn't exist!
經(jīng)嘗試,若改成:
DocumentRoot "H:/Apache/Tomcat5.0/webapps/ROOT"
則完全沒有任何警告信息出現(xiàn)在 error_log文件中~