Apache和Tomcat的整合過程(轉載)

一 Apache與Tomcat比較聯繫php

apache支持靜態頁,tomcat支持動態的,好比servlet等。html

通常使用apache+tomcat的話,apache只是做爲一個轉發,對jsp的處理是由tomcat來處理的。java

apache能夠支持php\cgi\perl,可是要使用java的話,你須要tomcat在apache後臺支撐,將java請求由apache轉發給tomcat處理。web

apache是web服務器,Tomcat是應用(java)服務器,它只是一個servlet(jsp也翻譯成servlet)容器,能夠認爲是apache的擴展,可是能夠獨立於apache運行。apache

 

這兩個有如下幾點能夠比較的:
一、二者都是apache組織開發的
二、二者都有HTTP服務的功能
三、二者都是免費的

不一樣點:
Apache是專門用了提供HTTP服務的,以及相關配置的(例如虛擬主機、URL轉發等等)
Tomcat是Apache組織在符合J2EE的JSP、Servlet標準下開發的一個JSP服務器windows

整合的好處是:
若是客戶端請求的是靜態頁面,則只須要Apache服務器響應請求
若是客戶端請求動態頁面,則是Tomcat服務器響應請求
由於jsp是服務器端解釋代碼的,這樣整合就能夠減小Tomcat的服務開銷api

二 Linux下Apache與Tomcat整合的簡單方法
轉自:http://hi.baidu.com/%D0%A1%BA%EC%DD%AB%DC%C4/blog/item/52154ec5a5c02ca08226acf9.html

一、準備,下載須要的文件。這裏假定你已經正確安裝配置好了JDK。
到Apache官方網站下載所須要的文件:
httpd-2.2.0.tar.gz
apache-tomcat-5.5.12.tar.gz
jakarta-tomcat-connectors-1.2.15-src.tar.gz
其中httpd和jakarta-tomcat-connectors爲源碼包,apache-tomcat爲二進制包。

二、安裝Apache。
# tar xzvf httpd-2.2.0.tar.gz
# cd httpd-2.2.0
# ./configure --prefix=/usr/local/apache2 --enable-so
# make
# make install

三、安裝Tomcat。
# cp apache-tomcat-5.5.12.tar.gz /usr/local/
# cd /usr/local
# tar xzvf apache-tomcat-5.5.12.tar.gz
# ln -s apache-tomcat-5.5.12 tomcat

四、編譯生成mod_jk。
# tar xzvf jakarta-tomcat-connectors-1.2.15-src.tar.gz
# cd jakarta-tomcat-connectors-1.2.15-src/jk/native
# ./configure --with-apxs=/usr/local/apache2/bin/apxs
# make
# cp ./apache-2.0/mod_jk.so /usr/local/apache2/modules/

五、配置。
在/usr/local/apache2/conf/下面創建兩個配置文件mod_jk.conf和workers.properties。

# vi mod_jk.conf
添加如下內容:
# 指出mod_jk模塊工做所須要的工做文件workers.properties的位置
JkWorkersFile /usr/local/apache2/conf/workers.properties

# Where to put jk logs
JkLogFile /usr/local/apache2/logs/mod_jk.log

# Set the jk log level [debug/error/info]
JkLogLevel info

# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"

# 將全部servlet 和jsp請求經過ajp13的協議送給Tomcat,讓Tomcat來處理
JkMount /servlet/* worker1
JkMount /*.jsp worker1

# vi workers.properties
添加如下內容:
# Defining a worker named worker1 and of type ajp13
worker.list=worker1

# Set properties for worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300

再配置httpd.conf,做如下修改:
將Listen 80 修改成 Listen 127.0.0.1:80
將ServerName 修改成 ServerName LocalHost:80

在DirectoryIndex中添加 index.jsp

個人網頁放在/var/wwwroot下,因此要修改DocumentRoot
DocumentRoot "/var/wwwroot"
<Directory "/var/wwwroot">
    Options Includes FollowSymLinks
    AllowOverride None
    Order deny,allow
    Allow from all
    XBitHack on
</Directory>
<Directory "/var/wwwroot/WEB-INF">    
    Order deny,allow
    Deny from all
</Directory>

增長關於加載mod_jk的語句:
LoadModule jk_module modules/mod_jk.so
Include /usr/local/apache2/conf/mod_jk.conf


最後編輯Tomcat的配置文件server.xml,在HOST段中加入:
<Context path="" docBase="/var/wwwroot" debug="0" reloadable="true" crossContext="true"/>
在/var/wwwroot下創建一個index.jsp,啓動Apache和Tomcat,用瀏覽器訪問http://localhost/,應該能夠看到正確的頁面了。

三 Windows下Apache與Tomcat的整合
轉自:http://bbs.blueidea.com/thread-2873268-1-1.html

準備工做:
一、 Apache 2.2.4
下載地址:http://cztele1.skycn.com/down/apache_2.2.4-win32-x86-no_ssl.zip

二、 Tomcat 6.0.16
下載地址:http://apache.mirror.phpchina.co ... e-tomcat-6.0.16.zip

三、 JDK
下載地址:http://cds.sun.com/is-bin/INTERS ... -windows-i586-p.exe
若是隻是應用的話,也能夠選擇安裝JRE,由於JRE比較小:)

4 JK-1.2.26-httpd-2.2.4
下載地址:http://www.apache.org/dist/tomca ... 2.26-httpd-2.2.4.so
注意JK的版本必定要與Apache版本相同。若是你的版本與個人不一樣,能夠去官網下載,有多種版本,適用於各類操做系統,下載適用的既可,地址:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/

開始安裝:
軟件的安裝順序能夠適當調整,可是JDK(JRE)必定要在Tomcat以前安裝:

一、安裝JDK(JRE)
此處默認、自定義安裝都可。安裝完成之後按下面的示例設置你的系統環境變量:個人電腦 -> 屬性 -> 高級 -> 環境變量 (這裏要添加的是系統變量,非用戶變量)
JAVA_HOME = D:\Program Files\Java\jdk1.6.0_07
CLASSPATH = .;%Java_Home%\lib\tools.jar;%Java_Home%\lib\dt.jar;
PATH = %Java_Home%\bin;%PATH%
注意JAVA_HOME的路徑改成你的實際安裝路徑。其它兩個不變。

二、安裝Apache
此處注意,若是你本機已經裝了IIS而且佔用了80端口,你能夠選擇禁用IIS或者給IIS指定其它端口,或者給Apache指定其它端口,根據實際狀況進行設置。在Apache的安裝過程當中要設置Network Domain和Server Name爲Localhost,設置你的Email地址(這個必定要設置,否則Apache啓動不起來)。
安裝完成以後,若是apache用的是80端口,那麼在瀏覽器中輸入 http://localhost ,若是使用的是其它端口例如81,則輸入 http://localhost:81 ,將會看到 Apache 的成功頁面。此時Apache已經運行,在系統托盤能夠看到它的圖標,雙擊打開能夠對Apache服務進行控制,咱們下面還要安裝Tomcat和JK,因此如今選擇 Stop 中止 Apache 服務。

三、安裝Tomcat
將Tomcat解壓到 D:\Program Files\Tomcat 下,設置環境變量:
CATALINA_BASE = D:\Program Files\tomcat
CATALINA_HOME = D:\Program Files\tomcat
CLASSPATH = %CATALINA_HOME%\lib\servlet-api.jar
運行 D:\Program Files\Tomcat\bin\startup.bat 啓動Tomcat,出現Tomcat頁面則表示安裝成功。

四、安裝JK
把 mod_jk-1.2.26-httpd-2.2.4.so 拷貝到 D:\Program Files\Apache2.2\modules 下。

下面進行服務器的配置:
一、配置Tomcat
查找Tomcat目錄下的 conf/server.xml文件,在<host></host>中間加入如下語句以修改其默認的目錄:
<Context path="" docBase="E:\wwwroot" reloadable="true" crossContext="true"/>
在這裏,若是 path 不爲空,則設置的是虛擬目錄,path 的值爲虛擬目錄名。

查找Tomcat目錄下的 conf/workers.properties文件,並對比下方文本內容,若有不一樣處,如下方文本爲準進行修改。
workers.tomcat_home=C:\apache-tomcat-6.0.18 #讓mod_jk模塊知道Tomcat的位置
workers.java_home=D:\Program Files\Java\jre1.6.0_07 #讓mod_jk模塊知道jre的位置
ps=\
worker.list=ajp13 #模塊版本
worker.ajp13.port=8009 #工做端口,若沒佔用則不用修改
worker.ajp13.host=localhost #本機,若上面的Apache主機不爲localhost,做相應修改
worker.ajp13.type=ajp13 #類型
worker.ajp13.lbfactor=1 #代理數,不用修改

若是此文件不存在,則依以上內容建立。對Tomcat的設置進行任何修改後都要重啓才能夠生效。

二、配置Apache
打開D:\Program Files\Apache2.2\conf下的httpd.conf,在最後加入下面這段代碼並保存。
LoadModule jk_module modules\mod_jk-1.2.26-httpd-2.2.4.so
#此處mod_jk的文件爲你下載的文件
JkWorkersFile "D:\Program Files\Tomcat\conf\workers.properties"
#指定tomcat監聽配置文件地址
JkLogFile "D:\Program Files\Tomcat\logs\mod_jk2.log"
#指定日誌存放位置
JkLogLevel info

#設置虛擬主機
<VirtualHost localhost>
#若是非虛擬主機,將<VirtualHost localhost>和最後的</VirtualHost>註釋或者刪除掉便可
ServerAdmin localhost
DocumentRoot E:/wwwroot
<Directory "E:/wwwroot">
#您的站點項目所在路徑,應與tomcat中的目錄設置相同,聽說以上兩個必須同時設置才能夠生效,沒有試過不一樣的時候會有什麼狀況
ServerName localhost
DirectoryIndex index.html index.htm index.jsp
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
JkMount /servlet/* ajp13
#讓Apache支持對servlet傳送,用以Tomcat解析
JkMount /*.jsp ajp13
#讓Apache支持對jsp傳送,用以Tomcat解析
JkMount /*.do ajp13
#讓Apache支持對.do傳送,用以Tomcat解析
</VirtualHost>

#開頭的行爲註釋,能夠刪除。此處的配置我是以設置虛擬目錄,從新指定了serverName,DocumentRoot路徑的方式配置站點,實際上,Apache的配置能夠很是靈活,你也能夠不採用虛擬目錄的方式,而直接去修改站點的默認配置,使用任意文本編輯工具,搜索如 ServerName,DocumentRoot,ServerAdmin等相關項,而後將該項的配置根據你的實際狀況進行修改便可。我建議你們能夠多多嘗試不一樣的配置,這是一種頗有樂趣的體驗。
全部的修改完成之後,雙擊系統托盤中的Apache圖標,而後點擊Start啓動Apache服務。
在地址欄中分別輸入http://localhost/,與http://localhost:8080/若結果相同,Apache與Tomcat整合成功

安裝常見問題:
1.一啓動Apache出現「windows不能在本地計算機啓動Apache2」錯誤
多數狀況是端口的問題,可能有其餘軟件佔用了80端口,最好把Apache的端口改爲81端口就能夠了

2.windows下查看80端口占用狀況,適用於查看任何端口
開始–運行–cmd 進入命令提示符 輸入netstat -ano 便可看到全部鏈接的PID 以後在任務管理器中找到這個PID所對應的程序若是任務管理器中沒有PID這一項,能夠在任務管理器中選」查看」-」選擇列」,常常,咱們在啓動應用的時候發現系統須要的端口被別的程序佔用,如何知道誰佔有了咱們須要的端口,不少人都比較頭疼,下面就介紹一種很是簡單的方法,但願對你們有用。

咱們須要肯定誰佔用了咱們的80端口
在windows命令行窗口下執行:C:\>netstat -aon|findstr 「80″
看到了嗎,端口被進程號爲2044的進程佔用,繼續執行下面命令:
C:\>tasklist|findstr 「2044″
avp.exe                     2044 Console                 0     37,680 K
很清楚吧,avp 卡巴監聽80端口,調整卡巴網絡監聽設置。
固然,若是你的80端口被其餘程序佔用,kill掉或者調整端口。
四 完瀏覽器

注:原帖地址http://www.cnblogs.com/itech/archive/2009/08/18/1548723.htmltomcat

相關文章
相關標籤/搜索