原文地址:http://my.oschina.net/u/919173/blog/159206
------------------------------------
首先談一下為什么要集成Apache和tomcat7??
? ? ?Apache是當前使用最為廣泛的WWW服務器軟件,具有相當強大的靜態HTML處理的能力。?Tomcat服務器是一個免費的開放源代碼的Web應用服務器,Tomcat和IIS、Apache等Web服務器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認模式。但是其處理靜態HTML頁面的能力肯定和Apache和IIS這種專業級別的服務器沒法比。因此取兩者之長避兩者之短,將兩者進行進行整合達到有點最大化的效果。
? ? ?1.安裝Apache2.2。 特別說一下這里會提示輸入域名之類的窗口,我這里全部填的localhost.端口的話默認的是80,但是這個端口某些時候可能會被占用,所以我在這里改成了8001(在配置文件httpd.conf里也可以修改,具體修改地方為:Listen 8001 ?修改為指定的端口號)。安裝完成后啟動服務名為Apache2.2的服務后,在網址里輸入:http://localhost:8001,會顯示出一個測試的頁面:It works! (這個頁面放在哪里呢?可以看下C:\Program Files\Apache Software Foundation\Apache2.2這個目錄下是不是有個htdocs文件夾,下面是不是有個index.html.以后我們的頁面就要放在這個里面。當然你也可以自己定義放在哪里,我在這里就改成了自己創建的WebSite文件夾,然后必須要在httpd.conf里指定為你創建的這個文件夾。配置的地方有2處,看我的配置信息:<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/WebSite">)?
? ? ?2.安裝tomcat7。其實沒什么好安裝的,下載下來的都是綠化包,直接解壓就可以使用.測試一下:http://localhost:8080 ?是不是看見一只小貓咪啊?其實我覺得他像一只小老虎。
? ? ?3.下載整合插件mod_jk.so。具體在哪兒下載呢?http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/? 網址老是變化,具體你就在tomcat官網左側有個tomcat connectors哪兒慢慢找吧。下載后解壓找到mod_jk.so放在apache安裝目錄下的modules文件夾下,里面是不是有很多的.so文件呢,沒錯就是這里啦。
? ? ?4.在httpd.conf里配置信息。
? # 設置虛擬主機,定義端口為8001,這個和你在前面配置Listen 8001的端口一定是要一樣的哦
? <VirtualHost 127.0.0.1:8001>
? ? ?ServerName 127.0.0.1
? ? ?#定義服務名稱
? ? ?DocumentRoot "C:/Program Files/Apache Software Foundation/tomcat7/webapps"
? ? ?#定義站點項目所在路徑,把路徑指向 tomcat 中的默認網站目錄
? ? ?DirectoryIndex index.html index.htm index.jsp
? ? ?ErrorLog logs/shsc-error_log.txt
? ? ?CustomLog logs/shsc-access_log.txt common
? ? ?#例子1,讓 Apache 支持對webapps/sun.shop/blog 中頁面傳送
? ? ?JkMount /sun.shop/blog/* config1
? ? ?#例子2,向Apache請求此文件夾內頁面時,系統將轉向用Tomcat解析
? ? ?JkMount /*.jsp config1
? ? ?#例子3,向 Apache 請求jsp頁面時,用 Tomcat 進行解析
? ? ?JkMount /*.do config1
? ? ?#例子4,向 Apache 請求.do 動作時, 用 Tomcat 進行解析
? ? ?JkMount /*.action config1
? ? ?#例子5,向 Apache 請求 .action 動作時, 用 Tomcat 進行解析
?</VirtualHost>
?
?# 允許客戶端訪問此路徑
?<Directory "C:/Program Files/Apache Software Foundation/tomcat7/webapps"> ?
? ? ?Options Indexes FollowSymLinks ?
? ? ?AllowOverride None ?
? ? ?Order allow,deny ?
? ? ?Allow from all ?
?</Directory> ?
?
?LoadModule jk_module modules/mod_jk.so
?# 此處 mod_jk.so 文件為你下載的文件
?JkWorkersFile "C:/Program Files/Apache Software Foundation/tomcat7/conf/workers.properties"
?# 指定tomcat監聽配置文件地址
?JkLogFile "C:/Program Files/Apache Software Foundation/tomcat7/logs/mod_jk2.log"
?# 指定日志存放位置
?JkLogLevel info
? ?5.配置tomcat的conf文件夾下添加workers.properties.具體添加如下內容,自己根據需求修改。
? ?workers.tomcat_home=C:\Program Files\Apache Software Foundation\tomcat7
? ?#讓 mod_jk 模塊感知 Tomcat
? ?workers.java_home=C:\Program Files\Java\jdk1.7.0_09\jre
? ?#讓 mod_jk 模塊感知 jre
? ?ps=\
? ?#指定文件路徑分割符
? ?worker.list=config1
? ?worker.config1.port=8009
? #工作端口,此端口應該與server.xml中Connector元素的 AJP/1.3 協議所使用的端口相匹配
? worker.config1.host=localhost
? #Tomcat服務器的地址
? worker.config1.type=ajp13
? #類型
? worker.config1.lbfactor=1
? #負載平衡因數
? ?6.測試一下啦。啟動apache和tomcat然后在瀏覽器中輸入:http://localhost:8001,這是你會發現我們又看到了那只小老虎(注意我們輸入的地址是在訪問apache不是在訪問tomcat,訪問tomcat的地址是:http://localhost:8080)。但是我們的apache的htdocs文件夾下沒有這個小老虎的頁面呀,這是因為我們集成成功啦。我們在訪問.jsp頁面的時候,apache會根據請求然后來判斷請求頁面的類型,當發現是.jsp頁面的時候,mod_jk插件就會將請求轉達給了tomcat,這時候tomcat會負責處理請求,所以我們會看到了webapps下的那只小老虎。