一、關于Apache和Tomcat
Apache HTTP Server(簡稱 Apache),是 Apache 軟件基金協會的一個開放源碼的網頁服務器,可以在 Windows、Unix、Linux 等操作系統中運行是最流行的Web服務器軟件之一。Apache 反應速度快,運行效率高,但只支持HTML等靜態頁面(加載插件后也可支持 PHP 頁面)。
Tomcat 是由 Apache 軟件基金協會與 Sun 公司聯合開發的一款Web服務器,它除了支持HTML等靜態頁面外,還支持JSP、Servlet 。
在相同的運行環境下,Tomcat 對靜態頁面的反應速度沒有 Apache 靈敏,整合 Apache 與 Tomcat 能使系統運行于一個良好環境下,提高系統效率。
二、運行環境
運行環境:Window10系統,與Window7系統整合是一樣的。
軟件包:xampp集成軟件包,包含了Apache+MySQL+PHP+Tomcat,本文就不介紹Apache和Tomcat服務器的安裝和配置了。
mod_jk.so:連接Apache和Tomcat,這里有很多版本,主要是要跟Apache版本能夠匹配,不然啟動Apazhe服務時會報錯,啟動不了。
下載:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/
JDK:JDK (Java Development Kit) 是 Sun 針對Java開發員的產品,是現今使用最廣泛的Java SDK。JDK 是整個Java的核心,包括了Java運行環境和基礎類庫等。常用版本包括 JDK 6、JDK 7、JDK 8。
下載:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
成功安裝 JDK 后,必須設置環境變量;
打開 “控制面板 --> 系統安全 --> 系統 --> 高級系統設置 --> 環境變量”,增加以下配置 :
變量 | 值 | 說明 |
---|---|---|
java_home | F:\Java\jdk1.7.0_75 | 寫入JDK安裝的路徑 |
Path | ;%java_home%\bin | 在Path原有值上加入此值 |
classpath | ;%java_home%\lib\dt.jar;%java_home%\lib\tools.jar | 在classpath的原有值上加入此值 |
三、整合 Apache+Tomcat
1、在 Apache、Tomcat 都能正常運行的情況下,把 mod_jk.mo 拷貝到 "D:\xampp\apache\modules" 文件夾下。
2、在 "D:\xampp\tomcat\conf" 文件夾下增加 workers.properties 文件,輸入以下內容。
workers.tomcat_home=D:\xampp\tomcat
#讓 mod_jk 模塊感知 Tomcat
workers.java_home=F:\Java\jdk1.7.0_75\jre
#讓 mod_jk 模塊感知 jre
ps=\
#指定文件路徑分割符
worker.list=config1
worker.config1.port=8009
#工作端口,此端口應該與server.xml中Connector元素的 AJP/1.3 協議所使用的端口相匹配
worker.config1.host=test.com
#Tomcat服務器的地址
worker.config1.type=ajp13
#類型
worker.config1.lbfactor=1
#負載平衡因數
注意:
worker.list=config1中,conifg1為自定義名稱,但此名稱必須與下文所述的
"D:\xampp\apache\conf\httpd.conf " 文件中 ,JkMount 指令對應的名稱相匹配。
3、加入workers.properties 文件后,可修改 "D:\xampp\apache\conf\httpd.conf" 文件,加入以下配置。
注意:JkMount 指令中的變量必須與worker.list 所配置的名稱相同。
# 設置虛擬主機
#本地虛擬測試,需要在"C:\Windows\System32\drivers\etc"中的host文件加入:"127.0.0.1 test.com"
<VirtualHost *:80>
ServerName test.com
#定義服務名稱
DocumentRoot "D:\xampp\tomcat\webapps"
#定義站點項目所在路徑,把路徑指向 tomcat 中的默認網站目錄
DirectoryIndex index.html index.htm index.jsp
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
#向Apache請求此文件夾內頁面時,系統將轉向用Tomcat解析
JkMount /* config1
</VirtualHost>
# 允許客戶端訪問此路徑
<Directory "D:\xampp\tomcat\webapps">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
LoadModule jk_module modules/mod_jk.so
# 此處 mod_jk.so 文件為你下載的文件
JkWorkersFile "D:/xampp/tomcat/conf/workers.properties"
# 指定tomcat監聽配置文件地址
JkLogFile "D:/xampp/tomcat/logs/mod_jk2.log"
# 指定日志存放位置
JkLogLevel info
注意:JkMount /* config1 指令代表當客戶端向 Apache 發送此文件夾內 頁面請求時,把處理指向
Tomcat。
完成以上配置后,重啟 Apache、Tomcat。
問題:如果按要求完成上面配置,在重啟Apache時出現如下情況:
那可能是你的mod_jk.so文件的版本跟Apache服務器版本不匹配,需要重新下載正確的版本,最好是下載最新版本,也不要去下載網上一些mod_jk.so文件,一般很難找到匹配的,而要根據安裝的Apache版本去官網下載對應的版本再重新拷貝到modules文件夾中。
測試成功如下圖:
好了,Window系統Apache2.4+Tomcat7.0整合配置到此完成,下篇博文將講解在Linux系統的整合配置。