Apache+Tomcat伺服器簡單整合
要求:
PHP伺服器,兩個Tomcat伺服器。不做負載平衡。
安裝 :
1、Apache安裝略過。
2、Apache+PHP略過。
3、Apche+2Tomcat配置。ajp13協議,需要下載tomcat聯結器:mod_jk.so (注意:需要與Apache,Tomcat版本匹配,否則你就慘了)。
配置:
1、在Apache\conf下配置httpd.conf
在http.conf中配置,mod_jk
配置如下:
#載入mod_jk
LoadModule jk_module modules/mod_jk.so
#配置
<IfModule mod_jk.c>
#設定mod_jk的配置
JkWorkersFile conf/workers.properties
#設定日誌位置
JkLogFile logs/mod_jk.log
#設定日誌級別
JkLogLevel info
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
</IfModule>
#註釋不能與配置在同一行,會報如下圖錯誤。我就掉這個坑花了點時間。
JkWorkersFile conf/workers.properties #設定mod_jk的配置
如果向上面這樣,它把註釋也看作了一個引數了。所以報錯。
2、在Apache\conf下新建一個配置檔案。名稱必須是:workers.properties。配置內容如下:
#讓mod_jk模組知道Tomcat的安裝路徑
workers.tomcat_home="D:/cdjhserver/apache-tomcat8081,D:/cdjhserver/apache-tomcat-8.5.32"
#讓mod_jk模組知道jdk路徑
workers.java_home="C:/Java/jdk1.7.0_07"
#當前目錄
ps=/
#這裡是關鍵,名字要和httpd.conf的一致。如果這裡改了httpd.conf也要改
worker.list=tom8080,tom8081
#工作埠,tomcat的jk監聽埠,可以檢視Server.xml中有port="8009"
worker.tom8080.port=8009
#Tomcat所在機器,如果安裝在與apache不同的機器則需要設定IP
worker.tom8080.host=localhost
#協議型別,不能改變,會出問題
worker.tom8080.type=ajp13
#負載平衡因子
worker.tom8080.lbfactor=1
#======第二個tomcat==========
worker.tom8081.port=8010
worker.tom8081.host=localhost
worker.tom8081.type=ajp13
worker.tom8081.lbfactor=1
#===end====================
特別注意:
1、workers.properties檔案編碼。裡面不能出現不認識的字元。
2、配置屬性和值,只能是字母和數字。
3、屬性值後面不能有空格。我在這兒栽過,會報下在的錯誤:
mod_jk.log報錯:
[Sat Jan 12 11:55:48.158 2019] [17844:31268] [error] wc_create_worker::jk_worker.c (138): Unknown worker type ajp13 for worker tom8080
[Sat Jan 12 11:55:48.158 2019] [17844:31268] [error] build_worker_map::jk_worker.c (261): failed to create worker tom8080
3、Apache\conf\httpd.conf裡面配置主機:
#第一個主機tom8080
<VirtualHost *:80>
DocumentRoot 【你的專案路徑】
ServerName XXX.XXX.com
DirectoryIndex index.jsp index.html index.html.var index.php
#以下根據自己的情況確定
JkMount /*WEB-INF tom8080
JkMount /*.jsp tom8080
JkMount /servlet/* tom8080
JkMount /*.do tom8080
JkMount /*.action tom8080
JkMount /Javenmy/* tom8080
</VirtualHost>
#第二個主機tom8081
<VirtualHost *:80>
DocumentRoot D:/phpStudySpace/demojeecg
ServerName demo.cdjh.com.cn
DirectoryIndex index.jsp index.html index.html.var index.php
JkMount /*WEB-INF tom8081
JkMount /*.jsp tom8081
JkMount /servlet/* tom8081
JkMount /*.do tom8081
JkMount /*.action tom8081
JkMount /Javenmy/* tom8081
</VirtualHost>
4、配置Tomcat\conf\server.xml
注意:兩個Tomcat同時執行,需要注意埠配置不同。有這幾個:8080(啟動),8009(ajp連線),8005(tomcat關閉),8443(ajp轉發)。
配置環境變數,兩個tomcat配置須不同。再修改tomcat啟動startup.bat,shutdown.bat,catalina.conf檔案中的 Tomcat_HOME,Tomcat_Base與你配置的環境變數一致,目的:啟動和關閉時找到各自的配置,使兩個Tomcat各自能獨立執行。
Tomcat的其他配置略過。
開啟server.xml配置檔案,找到AJP/1.3的連線配置。如下:
配置:<Engine name="Catalinademo" defaultHost="demo.cdjh.com.cn" jvmRoute="tom8081">
jvmRoute的值要和你在workers.properties中的worker.list屬性值裡面名稱一致。
兩個Tomcat都配置好後,配置就結束了。
分別啟動兩個tomcat,再啟動Apache。
如果不能正常執行,就檢視日誌,看錯誤在哪兒 。
遇到的幾個錯誤截圖(這幾個錯誤在上面都已說到):
錯誤一:
錯誤二:
讓檢視mod_jk.log日誌檔案,結果如下 :
這個錯,是因為ajp13後面有空格。錯誤時是這樣:“ajp13 ”。