整合apache2.2.x和tomcat5.5(轉)

有的同學問,爲什麼要整合呢,用tomcat不就搞定了嗎,而且現在的tomcat5.5以上版本有足夠的能力處理靜態資源了。但是當你的服務器即需要放Jsp又需要放php的時候,那80端口只能由apache去監聽,tomcat無法監聽了,整合後tomcat才能作爲一個apache的子服務去調用。

Tomcat5.5apache2.2.x整合,有很多方式,不推薦proxyPass的方式,該方式經過我長期測試,是有bug的。
所以大部分J2EE的網站都是採用JK將二者整合的做法。
 
Apache版本 2.2.x (x>=3)
 
過程如下;
 
1.首先安裝apache,裝完後把IIS停掉後,再啓動 apache 的服務器(安裝時根據提示安裝即可,安裝目錄一般不裝到系統盤上)
 
2.安裝tomcat(安裝之前請先把JDK 安裝好)
 
3.安裝tomcat 過程中會需要用戶設置用戶名和密碼,密碼部分記住一定要輸,最好設置的儘量複雜些
 
4.安裝mysql (安裝過程有此不詳述)
 
5.安裝完成後把mysql 的驅動程序mysql-connector-java-5.0.4-bin.jar放到apache-tomcat-5.5.23/common/lib
 
6.jk官方去下載者windows對應apache版本的jk jk官方下載地址:http://labs.xiaonei.com/apache-mirror/tomcat/tomcat-connectors/jk/binaries/
 
7.httpd.conf中配置如下:
 
    a.在該文件中找到這條語句LoadModule rewrite_module modules/mod_rewrite.so 並把這條語句前面的#註釋去掉,打開此模塊
 
    b.把該條語句LoadModule jk_module modules/mod_jk-1.2.27-win-httpd-2.2.10.so放入該文件中(其中該部分mod_jk-1.2.27-win-httpd-2.2.10.so是你所下的JK的版本號),是爲了讓tomcatapache進行通信的
 
    c.把此語句DocumentRoot "D:/Program Files/Apache Software Foundation/Apache2.2/htdocs" 改爲 DocumentRoot "D:/webroot",(調置所有網站的家目錄,若啓用虛擬主機功能此設置自動失效)
 
    d.把此語句<Directory "D:/Program Files/Apache Software Foundation/Apache2.2/htdocs">改爲<Directory "D:/webroot">(爲所有網站設置公共目錄屬性)
 
    e.把此語句Options Indexes FollowSymLinks改爲Options  FollowSymLinks (禁止用戶進行目錄瀏覽)
 
    f. 把此語句AllowOverride None   改爲AllowOverride All(使網站自已的重寫規則生效)
 
    g.把此語句DirectoryIndex index.html後添加 index.htm index.jsp 等(爲網站目錄設置默認首頁)
 
    h.#Include conf/extra/httpd-vhosts.conf前的#註釋去掉,是爲了啓用虛擬主機
 
8.配置apache-tomcat-5.5.23/conf下的server.xml文件 localhost添加context單元。
 
    a.如果只有一個域名,就只需添加context單元
 
    <Context path="/web1" docBase="D:/webroot/web1" >
        <Resource name="jdbc/testDataSource" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000" removeAbandoned="true"
               username="root" password="123" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://127.0.0.1:3306/web1db?useUnicode=true&characterEncoding=utf8"/>
 </Context>
  apache httpd.conf中找到#Include conf/extra/httpd-vhosts.conf,去掉#號
    Apache Software Foundation/Apache2.2/conf/extra/vhost.conf 文件需要添加一個VirtualHost目錄
 
       <VirtualHost *:80>  DocumentRoot D:/webroot </VirtualHost>
 
    b.如果多於一個域名,則需要添加host單元(context應包含其中)
   
    <Host name="www.javadn.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    <Alias>javadn.com</Alias>  
        <Context path="" docBase="D:/webroot/web1">
    <Resource name="jdbc/testDataSource" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" removeAbandoned="true" username="root" password="123" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/web1db?useUnicode=true&characterEncoding=utf8" />
    </Context>
    </Host>
 
    注:Alias別名可以指定多個,每在server.xml文件中添加一個host單元,就必須在vhost.conf文件中對應的添加一個VirtualHost單元,vhost.conf文件中的ServerName的值對應server.xml中的Host單元的name值, ServerAlias 對應server.xml中的 Alias值,如果有多個別名,可以排着往後寫例如:ServerAlias javadn.com aaa.com www.bbb.com
   
    附:VirtualHost 常用配置
 
    <VirtualHost *:80>
         DocumentRoot D:/webroot
         JkMount /*.jsp ajp13(遇到.jsp的文就會通過ajp13交給tomcat來處理,像.jpg,.gif等文件則由apache來處理)
         JkMount /*.do ajp13
         ServerName www.javadn.com
          ServerAlias javadn.com aaa.com www.bbb.com
    </VirtualHost>
   
    以上.do.jsp 文件交由tomcat來處理;網站中的靜態文件都交由apache來處理,因爲apahce本身處理靜態文件的速度比tomcat要快 ,這樣一來動態文件由tomcat來處理,靜態文件由apache來處理,不但減輕了tomcat的負擔而且還有效的提高了網站的訪問速度。
   
    重啓Tomcat,重啓Apache,成功。就是這麼簡單,注意上面的ajp13,直接用就可以,我發現在Apache2.2.3以後的jk版本中已經默認實現了。
發佈了70 篇原創文章 · 獲贊 4 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章