apache和tomcat整合詳解

來源:互聯網
上載者:User

最近閑著沒事,想起之前的項目放在一個低配的伺服器上,部署在一個tomcat上,訪問速度過慢,而且由於之前公司的項目都是別人部署,不知道部署到底是個什麼樣的步驟,今天特來試一試。

一、準備。

1.系統內容:Microsoft Windows XP

2.jdk:jdk1.6.0_24

:https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewFilteredProducts-SingleVariationTypeFilter

3.apache:httpd-2.2.17-win32-x86-no_ssl.msi

:http://httpd.apache.org/download.cgi#apache22 ,選擇 httpd-2.2.17-win32-x86-no_ssl.msi

4.tomcat:apache-tomcat-6.0.32.zip

:http://tomcat.apache.org/download-60.cgi,選擇zip包下載。

5.jk:mod_jk-1.2.31-httpd-2.2.3.so

:http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.31/,選擇mod_jk-1.2.31-httpd-2.2.3.so

註:  mod_jk-**.so的版本必須支援apache版本,不然會沒用!

二、安裝。

安裝過程不需要注重安裝順序。

1.安裝jdk

安裝好後,配置環境變數,以下是我的配置:

JAVA_HOME:C:/Program Files/Java/jdk1.6.0_24

PATH添加:%JAVA_HOME%/BIN;%JAVA_HOME%/JRE/BIN;

CLASSPATH:.;%JAVA_HOME%/lib;%JAVA_HOME%/lib/tools.jar;

2.安裝tomcat

把tomcat解壓到某個目錄

我的目錄:D:/Program Files/tomcat

配置環境:

CATALINA_BASE=D:/Program Files/tomcat

CATALINA_HOME=D:/Program Files/tomcat

CLASSPASS=%CATALINA_HOME%/lib/servlet-api.jar

3.安裝apache

此處注意,如果你本機已經安裝了IIS並且佔用了80連接埠,你可以選擇禁用IIS或者給IIS指定其他連接埠,或者給apache指定其他連接埠,根據實際情況設定。在apache安裝過程中要設定Network Domain和ServerName,一般會自動預設為你的電腦名稱,設定你的Email地址(這個一定要設定,否則apache啟動不了)。

安裝完成後,如果apache用的是80連接埠,那麼在瀏覽器輸入:http://localhost,如果使用的是其他連接埠,例如81,則輸入http://localhost:81,將會看到apache的成功頁面。此時apache已經運行,在系統托盤可以看到它的表徵圖,雙擊開啟可以對apache服務進行控制,便於下面的安裝,請先stop停掉服務。

4.安裝jk

將mod_jk-1.2.31-httpd-2.2.3.so重新命名為mod_jk.so複製到C:/Program Files/Apache Software Foundation/Apache2.2/modules子目錄下。

三、修改設定檔。

1.在tomcat目錄找到server.xml,我的在:D:/Program Files/tomcat/conf

在<Host></Host>之間添加以下代碼:

<Context path="" docBase="E:/salecost"  debug="0" reloadable="true" crossContext="true"/>

docBase為我的項目存放地址。path為項目名稱,這裡我選擇為空白。

2.在C:/Program Files/Apache Software Foundation/Apache2.2/conf下,添加workers.properties檔案,內容如下:

#指定Tomcat的主目錄以及JDK
workers.tomcat_home=D:/Program Files/tomcat  #安裝的Tomcat的根目錄
workers.java_home=C:/Program Files/Java/jdk1.6.0_24 #安裝的JDK的根目錄
ps=/
#Worker列表
worker.list= ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1

3.修改apache的httpd.conf檔案,我的目錄:C:/Program Files/Apache Software Foundation/Apache2.2/conf

在httpd.com設定檔末尾添加以下內容:

LoadModule jk_module modules/mod_jk.so 
JkWorkersFile "conf/workers.properties"
JkLogFile "logs/mod_jk.log" 
JkLogLevel info 
JkMount /servlet/* ajp13 
JkMount /*.jsp ajp13
JkMount /*.action ajp13
Alias /項目名稱 "項目具體地址"
#我的是: Alias /salecost "E:/salecost"

#將所有servlet 和jsp請求通過Ajp13的協議送給Tomcat,讓Tomcat來處理
#------------------------------------
#JkMount指示,將哪些請求發到Tomcat,如果在其它目錄也有servlet,也需在這裡映射,
#比如,如果/axis/下面有很幾個servlet,可以分別映射,也可以JkMount /axis ajp13全部映射,所有/axis下的訪問,都交給tomcat. 
#另外,如果要用tomcat的admin管理,還需要JkMount /admin/* ajp13
#注意,JkMount後面的ajp13是Worker名,應該在下面的workers.properties中定義.

註:jdMount就是把要給tomcat處理的檔案,配置出來。我的項目用s2sh開發,其中運用struts2的設定檔,修改了action的尾碼,所以,如果這裡修改了的朋友,需要注意一下,另外在我實際項目中,一部分路徑在設定檔中,所以這類請求路徑均為:/search?action=....,所以也得把這類配置給tomcat,否則它不會交由tomcat處理,我加了:JkMount /search ajp13 就可以了。這類的配置請注意是否和項目中web.xml中的配置一樣。詳細請根據自己情況設定了。
 

還需要修改httpd.conf檔案中Directory 的路徑:

#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "E:/salecost">  #這裡配置和tomcat中docBase一樣的路徑。

修改DocumentRoot的路徑為:"E:/salecost"

這樣,啟動tomcat和apache,訪問:http://localhost:8080和http://localhost都可以訪問你的項目了。

注意,如果訪問http://localhost路徑的時候,訪問的不是項目,而是出現了項目的目錄,需要在以下地方修改路徑,讓伺服器找到項目的訪問首頁。

在C:/Program Files/Apache Software Foundation/Apache2.2/conf下httpd.conf設定檔中修改DirectoryIndex,如下:

<IfModule dir_module>
    DirectoryIndex WEB-INF/jsp/login/login.jsp
</IfModule>

WEB-INF/jsp/login/login.jsp是我的訪問首頁,重啟apache,訪問正常。

至此,apache與tomcat的整合已經成功了。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.