日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Apache 与tomcat实现分布式应用部署

發布時間:2024/9/27 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Apache 与tomcat实现分布式应用部署 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一:原理

tomcat是一個web應用服務器,能夠解析靜態文件和動態文件(如:html、jsp、servlet等);apache是一個web server,能夠解析靜態文件。Tomcat作為一個獨立的web服務器是可以使用的,但是它對靜態文件的解析能力不如apache,所以就產生現在的web應用的分布式部署,apache+tomcat。

兩者之間的通信通過workers配置(由tomcat使用Server.xml中的Connector標簽定義端口port和協議protocol,workers.properties文件中定義端口、協議、tomcat服務器地址);由mod_jk模塊負責兩者通信的處理。通信協議有很多,其中jk2已經被拋棄了,現在就用jk就好了。

整個過程其實就是讓apache的httpd.conf文件調用mod_jk.conf,mod_jk.conf調用workers.properties,最后配置虛擬主機。

二:文件說明

mod_jk.conf

主要定義mod_jk模塊的位置以及mod_jk模塊的連接日志設置,還有定義worker.properties文件的位置。

worker.properties

定義worker的參數,主要是連接tomcat主機的地址和端口信息。如果Tomcat與apache不在同一臺機器上,或者需要做多臺機器上tomcat的負載均衡只需要更改workers.properties文件中的相應定義即可。

三:軟件版本說明

Jdk1.4.2_08(1.5也可以,把JRE裝在JDK目錄下)

tomcat 5.0.、5.5

apache apache_2.0.55-win32-x86-no_ssl.msi

mod_jk_1.2.6_2.0.50.dll(要根據apache版本確認)

把上面所有組件都安裝到D:\Server目錄下,這樣也方便日常管理配置和將來移植到別的服務器上去

JAVA_HOME java安裝路徑

TOMCAT_HOME tomcat安裝路徑

APACHE_HOME apache安裝路徑

四:操作步驟

4.1軟件安裝

??? 按順序安裝Jdk1.5、tomcat、apache

??? 可能遇到的問題

問題1: 在解析JSP頁面時,提示無法找到java compiler

請拷貝 j2sdk\lib\tools.jar 到 tomcat\common\lib下面。

使用tomcat作為service啟動后總是這樣,當然用startup.bat腳本啟動倒是完全正常。主要原因分析起來是以service方式啟動的Tomcat無法讀取JAVA_HOME 和CLASS_PATH等環境變量。

問題2:如何解決通過服務方式啟動tomcat時log中提示ZoneInfo:d:\server\j2sdk\lib\zi\ZoneInfoMappings(系統找不到指定的路徑。)

從d:\server\j2sdk\jre\lib目錄拷貝所有文件放到 d:\server\j2sdk\lib\ ,jre\lib 中的文件和j2sdk\lib\ 中的文件沒有一個重復的,不用擔心會覆蓋掉j2sdk\lib 中原有的任何文件。

4.2加入mod_jk連接模塊

拷貝mod_jk_1.2.6_2.0.50.dll到APACHE_HOME\apache2\modules\文件夾下,并重命名為mod_jk.dll

4.3修改apache配置文件

??? 為了保持httpd.conf文件的簡潔,把jk模塊的配置放到單獨的文件中來,就在httpd.conf中增加一行調用include “D:\server\Apache2\conf\mod_jk.conf”

4.4配置mod_jk.conf

下面是mod_jk.conf的文件內容,根據項目實際情況進行修改(照做就可以了)

# Load mod_jk module

LoadModule jk_module modules/mod_jk.dll

?

# Where to find workers.properties

JkWorkersFile conf/workers.properties

?

# Where to put jk logs

JkLogFile logs/mod_jk.log

?

# Set the jk log level [debug/error/info]

JkLogLevel info

?

# Select the log format

#JkLogStampFormat \"[%a %b %d %H:%M:%S %Y] \"

?

# JkOptions indicate to send SSL KEY SIZE,

JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

?

# JkRequestLogFormat set the request format

#JkRequestLogFormat \"%w %V %T\"

?

# Send servlet for context /examples to worker named ajp13

#JkMount /servlet/* ajp13

?

# Send JSPs for context /examples to worker named ajp13

JkMount /*.jsp ajp13

JkMount /*.do ajp13

JkMount /*/*.do ajp13

?

上面這一行我們設置了了 /*.jsp ajp13 就是說把所有.jsp結尾的文件都由ajp13這個worker交給tomcat處理了

?

4.5配置apache2\conf\workers.properties

worker.list=ajp13

worker.ajp13.port=8009

worker.ajp13.host=localhost? #本機,若上面Tomcat主機不為localhost,作相應修改

worker.ajp13.type=ajp13? #類型

worker.ajp13.lbfactor=1? #代理數,不用修改

?

4.6虛擬主機的配置

舉例配置2個vhost網站 一個是 localhost ,另一個是 www.ok.com
當然www.ok.com 是虛擬的,本地測試時,應該修改系統中的hosts文件,添加一行 127.0.0.1 ?www.ok.com

NameVirtualHost *:80

<VirtualHost *:80>

ServerAdmin webmaster@localhost

DocumentRoot "C:/tomcat-5.5.9/webapps/jsp-examples/"

ServerName localhost

ErrorLog logs/localhost-error_log

CustomLog logs/localhost-access_log common

</VirtualHost>

?

<VirtualHost *:80>

ServerAdmin webmaster@dummy-host.example.com

DocumentRoot D:/projectTest/

ServerName 192.168.5.220

ErrorLog logs/ok.com-error_log

CustomLog logs/ok.com-access_log common

<Location /server-status>?????????? # 這樣我可以看到apache服務器狀態

SetHandler server-status

#Order deny,allow

#Deny from all

#Allow from localhost

#Allow from 192.168.5.80

</Location>

</VirtualHost>

?

4.7虛擬主機的配置

添加新的www.ok.com 虛擬主機,在tomcat安裝路徑\conf\server.xml的最后,找到<Engine>段,改為

?

<Engine>

<Host name=”localhost” ……>

</Host>

?

<Host name=\"www.ok.com\" debug=\"0\" appBase=\"D:/server/www/\" unpackWARs=\"true\" autoDeploy=\"true\" xmlValidation=\"false\" xmlNamespaceAware=\"false\">

<Context path=\"\" docBase=\".\" />

<Logger className=\"org.apache.catalina.logger.FileLogger\" directory=\"logs\" prefix=\"ok.com_log.\" suffix=\".txt\" timestamp=\"true\" />

</Host>

</Engine>

?

五:結語

?? 因tomcat、apache都是開源軟件,對版本搭配要求比較嚴格,因此一定要注意版本。

總結

以上是生活随笔為你收集整理的Apache 与tomcat实现分布式应用部署的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。