1. 程式人生 > >Apache+Tomcat伺服器簡單整合

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    ”。