tomcat 和apache的整合的方法及配置(一)
?
一.???apache和tomcat的簡介及整合的原因?
整合?Apache Http Server?和?Tomcat?可以提升對靜態文件的處理性能、利用?Web?服務器來做負載均衡以及容錯、無縫的升級應用程序。本文介紹了三種整合?Apache?和?Tomcat?的方式。
首先我們先介紹一下為什么要讓?Apache?與?Tomcat?之間進行連接。事實上?Tomcat?本身已經提供了?HTTP?服務,該服務默認的端口是?8080,裝好?tomcat?后通過?8080?端口可以直接使用?Tomcat?所運行的應用程序,你也可以將該端口改為?80。
既然?Tomcat?本身已經可以提供這樣的服務,我們為什么還要引入?Apache?或者其他的一些專門的?HTTP?服務器呢?原因有下面幾個:
1.?提升對靜態文件的處理性能
2.?利用?Web?服務器來做負載均衡以及容錯
3.?無縫的升級應用程序
這三點對一個?web?網站來說是非常之重要的,我們希望我們的網站不僅是速度快,而且要穩定,不能因為某個?Tomcat宕機或者是升級程序導致用戶訪問不了,而能完成這幾個功能的、最好的?HTTP?服務器也就只有?apache?的?http server?了,它跟?tomcat?的結合是最緊密和可靠的。
接下來我們介紹三種方法將?apache?和?tomcat?整合在一起。
?第一種方法是: ????????利用apache自帶的mod_proxy模塊使用代理技術連接Tomcat。在配置之前確保是否使用的是apache的版本是2.2.x?。 因為apache2.2.x對mod_proxy這個模塊進行了重寫,大大增強了其功能和其穩定性 ???????http_proxy模式是基于HTTP協議的代理。因此要求Tomcat必須提供HTTP服務,換句話說必須是啟用Tomcat的HTTP??Connector?
?
?第二種tomcat和apache整合的方法 ???????利用ajp_proxy?連接方式其實和http_proxy?方式是一樣,但是由于mod_proxy?所提供的功能,配置也是一樣的。 ???????但是采用proxy的連接方式。只需要在apache加載所需要的模塊,mod_proxy相關的模塊有mod_proxy.so ,mod_proxy_connect.so , mod_proxy_http.so,,mod_proxy_ftp.so ?mod_proxy_ajp.so,其中mod_proxy_ajp.so?只在apache2.2.x?中才有。如果是采用http_proxy的方式則需要加載mod_proxy.so?和mod_proxy_http.so;?如果是采用ajp_proxy的連接方式則需要加載mod_proxy.so和mod_proxy_ajp.so?這兩個模塊 第三種方法是 ??????使用jk?,該方法是最常見的方式。jk本身用兩個版本分別是1和2。jk死通過AJP協議與Tomcat服務器進行通訊的,Tomcat默認的AJP??Connector?的端口是8009.jk本身提供一個監控集群管理的頁面Jkstatus?,通過jkstatus?可以監控jl目前的工作狀態及對到tomcat的連接進行設置?
所需要的源代碼包 ??httpd-2.2.15.tar .gz ??tomcat-connectors-1.2.28.src.tar.gz jdk-6u21-linux-i586.bin apache-tomcat-5.5.29.zip?
?
第三,測試環境及其軟件的安裝 ??cc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses及其其他的一些開發工具的安裝?
1??apache的安裝及其配置 ?#tar xvf httpd_2.2.15.tar.gz ?#cd??httpd-2.2.15/server/mpm/worker/ ?#vim??worker.c ?????把 define DEFAULT_SERVER_LIMIT 16 define MAX_SERVER_LIMIT 20000 define DEFAULT_THREAD_LIMIT 64 define MAX_THREAD_LIMIT 20000?
改為 ??????define DEFAULT_SERVER_LIMIT 256 define MAX_SERVER_LIMIT 40000 ?define DEFAULT_THREAD_LIMIT 256 define MAX_THREAD_LIMIT 40000?
#cd ../../../ srclib/apr #./configure –prefix=/usr/local/apr #make &&make install?
?
#cd ../apr-util #configure??--prefix=/usr/local/arp-util??--with-arp=/usr/local/apr #make && make install?
#cd ../../ #./configure??--prefix=/usr/local/apache???--enable-mods-shared=all??--enable-modules=so -enable-cgi --with-mpm=worker --enable-deflate --enable-cache??--enable-disk-cache --enable-mem-cache??--enable-file-cache?--enable-proxy??--enable-proxy-connect??--enable-proxy-ftp --enable-proxy-http??--enable-proxy-ajp --enable-proxy-balancer??--enable-rewrite??--enable-charset-lite??--enable-suexec??--with-suexec-bin=/usr/sbin/suexec??--enable-static-support??--enable-speling --enable-info --enable-http??--enable-headers --enable-logio --enable-mime-magic??--enable-alias??--enable-usertrack --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ #make && make install #/usr/local/apache/bin/apachectl???start #netstats –tunlp | grep httpd 確保80端口是開啟的?
?
?
?
2?配置java環境 ??#bash??jdk-6u21-linux-i586.bin ??#mv jdk1.6.0_21/ /usr/java ??#cd /usr/bin ??# ln -sf /usr/java/jre/bin/java ./ ??# ln -fs /usr/java/bin/javac??./ ??# java –version ??????java version "1.6.0_21" Java(TM) SE Runtime Environment (build 1.6.0_21-b06) Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode, sharing)?
?修改系統環境變量, #vim /etc/profile ?添加下面 ??JAVA_HOME=/usr/java JRE_HOME=/usr/java/jre CACTALINA_HOME=/usr/local/tomcat CLASSPATH=/usr:/usr/java/lib:/usr/java/jre/lib:$CACTALINA_HOME=/common/lib:$CACTALINA_HOME/bin PATH=$PATH:$JAVA_HOME/bin::$CACTALINA_HOME/bin export JAVA_HOME JRE_HOME CLASSPATH PATH CACTALINA_HOME #source /etc/profile 3?安裝tomcat ??#unzip??apache-tomcat-5.5.29.zip ? ??把apache=tomcat-5.5.29?移到/usr/local/并改名為tomcat ?# mv apache-tomcat-5.5.29 /usr/local/tomcat ? ??修改/usr/local/tomcat/bin?目錄權限 ??#cd /usr/local/tomcat ??#chmod +x –R bin/ ??啟動tomcat ?#cd bin/ ?#./startup.sh ?查看端口8080,8009?是否開啟 ?#netstat –tunlp 在瀏覽器中輸入http://localhost:8080?看看能不能在左上角出現小貓,如果出現則是ok了 5 4?整合apache和tomcat ??第一種方法是 在apache的配置文件中 ?#cd /usr/local/apache/conf/ ?#vim??httpd_conf?
?
?
?
在其尾部添加 ProxyPass??/images?! ProxyPass??/css???! ProxyPass??/js?! ProxyPass??/ http://localhost:8080/ ?重啟apache 并在瀏覽器中輸入:http://localhost 出現的頁面如果是和上面的頁面相同則說明整合成功,如果沒有請您檢查錯誤?
?
?
下面的是利用mod_proxy?做負載均衡 ????ProxyPass /images ! ProxyPass /js ! ProxyPass /css !?
ProxyPass / balancer://example/ <Proxy balancer://example/> BalancerMember http://server1:8080/ BalancerMember http://server2:8080/ </Proxy> ?????
第二種方法 ?是利用ajp_proxy?的連接方式來整合apache和tomcat 1?在apache的配置文件的末尾添加下面 ??ProxyPass / ajp://127.0.0.1:8009/ ProxyPassReverse / ajp://127.0.0.1:8009/ 2?下面的是配置類似于負衡均載的 ? ProxyPass /images !ProxyPass /css !
ProxyPass /js !
?
ProxyPass / balancer://example/
<Proxy balancer://example/>
BalancerMember ajp://server1:8080/
BalancerMember ajp://server2:8080/
BalancerMember ajp://server3:8080/
</Proxy>
本文轉自 freehat08 51CTO博客,原文鏈接:http://blog.51cto.com/freehat/370453,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的tomcat 和apache的整合的方法及配置(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员每周该做的事情!
- 下一篇: 局域网电脑间互相访问的问题?