Apache與Tomcat整合

Apache與Tomcat整合


一 Apache與Tomcat比較聯繫
apache支持靜態頁,tomcat支持動態的,比如servlet等。
一般使用apache+tomcat的話,apache只是作爲一個轉發,對jsp的處理是由tomcat來處理的。
apache可以支持php\cgi\perl,但是要使用java的話,你需要tomcat在apache後臺支撐,將java請求由apache轉發給tomcat處理。
apache是web服務器,Tomcat是應用(java)服務器,它只是一個servlet(jsp也翻譯成servlet)容器,可以認爲是apache的擴展,但是可以獨立於apache運行。
這兩個有以下幾點可以比較的:
1、兩者都是apache組織開發的
2、兩者都有HTTP服務的功能
3、兩者都是免費的

不同點:
Apache是專門用了提供HTTP服務的,以及相關配置的(例如虛擬主機、URL轉發等等)
Tomcat是Apache組織在符合J2EE的JSP、Servlet標準下開發的一個JSP服務器
整合的好處是:
如果客戶端請求的是靜態頁面,則只需要Apache服務器響應請求
如果客戶端請求動態頁面,則是Tomcat服務器響應請求
因爲jsp是服務器端解釋代碼的,這樣整合就可以減少Tomcat的服務開銷
二 Linux下Apache與Tomcat整合的簡單方法
轉自:http://hi.baidu.com/%D0%A1%BA%EC%DD%AB%DC%C4/blog/item/52154ec5a5c02ca08226acf9.html

1、準備,下載需要的文件。這裏假定你已經正確安裝配置好了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爲二進制包。

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

3、安裝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

4、編譯生成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/

5、配置。
在/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

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

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

3、 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之前安裝:

1、安裝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的路徑改爲你的實際安裝路徑。其它兩個不變。

2、安裝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 服務。

3、安裝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頁面則表示安裝成功。

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

下面進行服務器的配置:
1、配置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的設置進行任何修改後都要重啓纔可以生效。

2、配置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掉或者調整端口。
四 完!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章