apache tomcat 整合

第一部分  整合過程

第一步: 在http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.6下載mod_jk_1.2.6_2.0.50.dll文件,將其改名爲mod_jk.so後放到apache2/modules目錄中。
             
第二步: workers.properties:
   
workers.tomcat_home=D:\My_Work\Tomcat\apache-tomcat-6.0.14
workers.java_home=D:\Program Files\Java\jdk1.5.0_07
ps=\
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1 
             
第三步:用記事本打開apache/conf/httpd.conf文件末尾,添加下面一段:
    
LoadModule jk_module modules/mod_jk.so
JkWorkersFile "D:\Program Files\Apache Software Foundation\Apache2.2\modules\workers.properties"
#ServerAdmin [email protected]
#ServerName localhost
DirectoryIndex index.html index.htm index.jsp
JkMount /* ajp13   
JkAutoAlias "D:\My_Work\Tomcat\apache-tomcat-6.0.14\webapps"  
Options Indexes FollowSymLinks
#allow from all
 保存,停止apache服務,在啓動,就可以將新配置應用了。

第二部分 整合的必要性和詳細講解
一.Apache與Tomcat介紹

    Apache是當前使用最爲廣泛的WWW服務器軟件,具有相當強大的靜態HTML處理的能力。

     Tomcat服務器是一個免費的開放源代碼的Web應用服務器,它是Apache軟件基金會(Apache Software Foundation)的Jakarta項目中的一個核心項目,由Apache、Sun和   其他一些公司及個人共同開發而成。由於有了Sun的參與和支持,最新的Servlet和JSP   規範總是能在Tomcat中得到體現,Tomcat5支持最新的Servlet 2.4和JSP 2.0規範。因爲Tomcat技術先進、性能穩定,而且免費,因而深受Java愛好者的喜愛並得到了部分軟件開發商的認可,成爲目前比較流行的Web應用服務器。

Tomcat和IIS、Apache等Web服務器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認模式。



二.爲什麼需要整合

整合的最主要原因是爲了在現有的硬件條件下提供最大的負載。

如果單獨使用Tomcat做JSP服務器,在工作效率上會存在問題,Tomcat處理靜態HTML的能力不如Apache,並且所能承受的最大併發連接數也有一定的限制;

在測試中,當併發連接較多時,Tomcat就會處於“僵死”狀態,對後繼的請求連接失去響應。所以現在提出一個“整合”解決方案:將html與jsp的功能部分進行明確分工,讓tomcat只處理jsp部分,其它的由apache這個web server處理。Apache與Tomcat各司其職,那麼服務器的整體效率就能夠得到提升。



三.整合的基本原理

作爲Apache下面的子項目,Tomcat 與 Apache之間有着天然的聯繫。在實際操作中,主要是Apache作爲主服務器運行,當監聽到有jsp或者servlet的請求時,將請求轉發給tomcat服務器,由tomcat服務器進行解析後,發回apache,再由apache發回用戶。

在tomcat中有兩個監聽的端口,一個是8080用於提供web服務,一個是8009用於監聽來自於apache的請求。當apache收到jsp或者servlet請求時,就向tomcat 的8009端口發送請求,交由tomcat處理後,再返回給apache,由apache返回給客戶。



四.安裝Apache與Tomcat服務器

   操作系統環境:Windows xp home

   安裝文件:apache-tomcat-6.0.14.exe apache_2.2.6-win32-x86-openssl-0.9.8e.msi mod_jk-apache-2.2.4.so

  到apache 與tomcat 的官方網站上面下載apache 與tomcat,安裝apache與tomcat

     到http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32下載 mod_jk-apache-2.2.4.so

     將mod_jk-apache-2.2.4.so拷貝到apache安裝目錄下面的modules目錄中。

五.修改Tomcat設置

     在tomcat的conf目錄下建一個workers.properties的文本文件,添加如下配置 

     workers.tomcat_home="tomcat安裝目錄"

     #讓mod_jk模塊知道Tomcat的安裝路徑

     workers.java_home="java安裝目錄"

     #讓mod_jk模塊知道jdk路徑

     ps="

     worker.list=ajp13

     #這裏是關鍵,名字要和httpd.conf的一致。如果這裏改了httpd.conf也要改。

     worker.ajp13.port=8009

     #工作端口,tomcat的jk監聽端口,可以查看Server.xml中有port="8009"           

     worker.ajp13.host=localhost

     #Tomcat所在機器,如果安裝在與apache不同的機器則需要設置IP

     worker.ajp13.type=ajp13

     #類型,好像不能改,會出問題

     worker.ajp13.lbfactor=1

     #負載平衡因子   



六.修改Apache設置

修改apache安裝目錄下conf目錄下的httpd.conf,增加如下配置

  LoadModule jk_module modules/mod_jk-apache-2.2.4.so

       JkWorkersFile "tomcat安裝目錄/conf/workers.properties"

    JkLogFile "apache安裝目錄/logs/mod_jk.log" 

      JkMount /*.jsp ajp13

      JkMount /*.do ajp13

七.整合操作說明

  mod_jk-apache-2.2.4.so相當於是apache與tomcat之間的橋樑一樣,所以在apache的配置文件下面加上LoadModule jk_module modules/mod_jk-apache-2.2.4.so 將此模塊載入。

JkWorkersFile "tomcat安裝目錄/conf/workers.properties" 說明了mod_jk-apache-2.2.4.so 如何工作,當出現要轉發時,將請求發送到那裏進行處理,代表了一系列的工作參數。

JkLogFile "apache安裝目錄/logs/mod_jk.log" 設定日誌的地址。

JkMount 說明了將什麼樣的URL進行發送到tomcat進行處理。JkMount /*.jsp ajp13 說明了要將jsp請求發到tomcat,JkMount /*.do ajp13說明了要將.do型的servlet發到tomcat進行處理。在實際的分發中,如果servlet命名不帶後綴的話,將無法被識別,也就無法進行處理。

八.結束語

在查閱了不少文章之後,我仔細的瞭解了下這兩者進行整合的過程,網上很多文章講的整合應該不算是真正意義上面的整合,希望此文章能夠爲正爲這些問題苦惱的同行們解決一點小困難……。 

文章來源:http://code-worker.javaeye.com/blog/246993
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章