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命名不帶後綴的話,將沒法被識別,也就沒法進行處理。 html