Posted on 2008-11-28 01:56
tanzek 閱讀(1407)
評論(0) 編輯 收藏 所屬分類:
技術學習
在之前的日子里面,使用SSH架在TOMCAT上面寫了一個小項目,但是部門里最經常使用的是Apache+PHP,因此為了能夠不開放更多的端口,就想試驗下以前聽過的將Apache和Tomcat進行整合。
在整合過程中,參考了很多內容,我都一一放在此文的末尾,供大家一起參閱。
其實本文的目標比較小,經過一些簡單的了解后,可以使用Tomcat中的AJP監聽端口來進行整合。但是查閱后才得知,使用此種方法還可以進行均衡負載(load-balancing)、失效備援(failover)等,但這里因為我還沒有實踐成功過,因此僅將本次操作的部分進行總結。
試驗軟件:Apache 2.2.10
Tomcat 6.0.18
1、加入Apache中的mod_proxy支持因為在Apache 2.2開始,使用mod_proxy_ajp來支持
Apache JServ Protocol version 1.3
了。所以,在這里我們只需啟用此模塊。當然為了更方便地進行代理,也可以把mod_proxy_相關的一些其它模塊一起啟用,在Apache中的httpd.conf如下:
LoadModule?proxy_module?modules/mod_proxy.so
LoadModule?proxy_ajp_module?modules/mod_proxy_ajp.so
LoadModule?proxy_balancer_module?modules/mod_proxy_balancer.so
LoadModule?proxy_connect_module?modules/mod_proxy_connect.so
LoadModule?proxy_ftp_module?modules/mod_proxy_ftp.so
LoadModule?proxy_http_module?modules/mod_proxy_http.so
將這些項前面的#號去掉就可以了。
2、在Tomcat中配置AJP監聽選項在Tomcat中,默認就已經開放了AJP的監聽選項,同時還開放了一個監聽non-SSL HTTP/1.1的Connector,如下:
<Connector?port="8080"?protocol="HTTP/1.1"?
???????????????connectionTimeout="20000"?
???????????????redirectPort="8443"?/>
<Connector?port="8009"?protocol="AJP/1.3"?redirectPort="8443"?/>
在上面的配置中,就可以看出AJP的監聽端口在8009上,HTTP/1.1瀏覽器監聽在8080端口上。關于Connector的定義、配置及與其它元素之間的關系,大家可參考Apache Tomcat的官方文檔,有對結構的完整描述
[1]。
同時,還需要設置jvmRoute來支持通過AJP的負載均衡,如下:
<Engine?name="Catalina"?defaultHost="localhost"?jvmRoute="tomcat1">
在上述位置加入粗體部分的內容。
3、Apache最后配置通過上面的步驟,我們就是要確定使用Apache的反向代理,將請求轉至Tomcat的AJP監聽端口上來正確處理。在Apache的httpd.conf中更改如下:
<IfModule?dir_module>
????DirectoryIndex?index.html?index.jsp
</IfModule>
在上述元素節點中,加入粗體部分的文字內容,表示增加index.jsp作為默認首頁。
同時可在最后加入如下內容:
ProxyRequests?Off
ProxyPass?/?balancer://cluster/
<proxy?balancer://cluster>
????BalancerMember?ajp://127.0.0.1:8009?loadfactor=1?route=tomcat1
</proxy>
注意其中的8009是與第1步中的AJP監聽端口相對應,后面的route是與第1步中的jvmRoute相對應。
4、設置完成后,重新啟動Apache和Tomcat。
這樣子就成功了。
本次參考了大量的內容,主要有如下:
1、Apache Tomcat Architecture,
http://tomcat.apache.org/tomcat-6.0-doc/architecture/index.html2、Graham King:High availability Tomcat - Connect Tomcat servers to Apache and to each other to keep your site running,
http://www.roseindia.net/software-tutorials/detail/6135,JavaWorld.com,2004-12-20
3、魏杰:Apache負載均衡+Tomcat集群,
http://weijie.blog.51cto.com/340746/68195,2008-03-26
4、heavyz:Tomcat啟動分析,
http://docs.huihoo.com/apache/tomcat/heavyz/01-startup.html,2003-03-22
還有很多參考沒辦法列出來,在此對他們表示非常感謝。