`
isiqi
  • 浏览: 16055489 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Apache和Tomcat整合学习总结

阅读更多

ApacheTomcat整合学习总结

一、 ApacheTomcat的区别和联系:

1. Apache支持静态页,Tomcat支持动态。一般使Apache+Tomcat的话,Apache只是作为一个转发,对jsp的处理是由Tomcat来完成的。

2. Apache可以支持php\cgi\perl,但是要使用java的话,你需要TomcatApache后台支撑,将java请求由Apache转发给Tomcat处理。

3. Apacheweb服务器,Tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行。

4. Apache是专门用来提供HTTP服务以及相关配置的(例如虚拟主机、URL转发等等),TomcatApache组织在符合J2EEJSPServlet标准下开发的一个JSP服务器。

二、为什么需要整合?

1. 整合的最主要原因是为了在现有的硬件条件下提供最大的负载。

2. 如果单独使用TomcatJSP服务器,在工作效率上会存在问题,Tomcat处理静态HTML的能力不如Apache,并且所能承受的最大并发连接数也有一定的限制。

3. 当并发连接较多时,Tomcat就会处于“僵死”状态,对后继的请求连接失去响应。所以现在提出一个“整合”解决方案:将htmljsp的功能部分进行明确分工,让Tomcat只处理jsp部分,其它的由Apache这个web server处理。ApacheTomcat各司其职,那么服务器的整体效率就能够得到提升。

三、整合的基本原理:

1. 在实际操作中,主要是Apache作为主服务器运行,当监听到有jsp或者servlet的请求时,将请求转发给Tomcat服务器,由Tomcat服务器进行解析后,发回Apache,再由Apache发回用户。

2. Tomcat中有两个监听的端口,一个是8080用于提供web服务,一个是8009用于监听来自于Apache的请求。当Apache收到jsp或者servlet请求时,就向Tomcat 8009端口发送请求,交由Tomcat处理后,再返回给Apache,由Apache返回给客户。

四、ApacheTomcat的整合过程:

1. 准备工作:

1) Tomcat5.0

2) Apache2.2.3

3) mod_jk-1.2.28-httpd-2.2.3.so

4) JDK1.5

2. 搭建环境:

1) 安装JDK(JRE)

JAVA_HOME = D:\Program Files\JDK1.5
CLASSPATH = D:\Program Files\JDK1.5\lib\dt.jar;D:\Program Files\JDK1.5\lib\tools.jar;D:\Program Files\Tomcat 5.0\common\lib\servlet-api.jar
PATH = D:\Program Files\JDK1.5\bin

2) 安装Apache
安装完成之后,如果Apache用的是80端口,那么在浏览器中输入 http://localhost ,如果使用的是其它端口例如81,则输入 http://localhost:81 ,将会看到 Apache 的成功页面。此时Apache已经运行,在系统托盘可以看到它的图标,双击打开可以对Apache服务进行控制,我们下面还要安装TomcatJK,所以现在选择 Stop 停止 Apache 服务。

3) 安装Tomcat

Tomcat解压到 D:\Program Files\Tomcat 下,设置环境变量:

CATALINA_BASE = D:\Program Files\Tomcat 5.0
CATALINA_HOME = D:\Program Files\Tomcat 5.0

或者:

TOMCAT_HOME = D:\Program Files\Tomcat 5.0

4) 安装JK

mod_jk-1.2.28-httpd-2.2.3.so 拷贝到 D:\Program Files\Apache2.2\modules 下。

3. 配置Tomcat

配置conf/server.xml文件:

<host></host>中加入以下语句修改默认目录。

<Context path="" docBase="D:\project\cztMH_new\WebRoot" reloadable="true" crossContext="true"/>

<Context path="/bbs" docBase=" D:\project\cztMH_new\WebRoot \bbs" reloadable="true" crossContext="true"/>

配置conf/workers.properties文件:

workers.Tomcat_home=D:\Program Files\Tomcat

#mod_jk模块知道Tomcat的位置
workers.java_home=D:\Program Files\Java\jre1.6.0_07

#mod_jk模块知道jre的位置
ps=\
worker.list=ajp13 #
模块版本
worker.ajp13.port=8009 #
工作端口,若没占用则不用修改
worker.ajp13.host=localhost

#本机,若上面的Apache主机不为localhost,作相应修改
worker.ajp13.type=ajp13 #
类型
worker.ajp13.lbfactor=1 #
代理数,不用修改

如果此文件不存在,则依以上内容创建。对Tomcat的设置进行任何修改后都要重启才可以生效。

4. 配置Apache

打开D:\Program Files\Apache2.2\conf下的httpd.conf,在最后加入下面这段代码并保存。

LoadModule jk_module modules\mod_jk-1.2.26-httpd-2.2.4.so
#
此处mod_jk的文件为你下载的文件

JkWorkersFile "D:\Program Files\Tomcat\conf\workers.properties"
#
指定Tomcat监听配置文件地址
JkLogFile "D:\Program Files\Tomcat\logs\mod_jk2.log"
#
指定日志存放位置
JkLogLevel info

#设置虚拟主机
<VirtualHost localhost>
#
如果非虚拟主机,将<VirtualHost localhost>和最后的</VirtualHost>注释或者删除掉即可
ServerAdmin localhost
DocumentRoot D:\project\cztMH_new\WebRoot
<Directory "D:\project\cztMH_new\WebRoot ">
#
您的站点项目所在路径,应与Tomcat中的目录设置相同。
ServerName localhost
DirectoryIndex index.html index.htm index.jsp
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
JkMount /servlet/* ajp13
#
Apache支持对servlet传送,用以Tomcat解析
JkMount /*.jsp ajp13
#
Apache支持对jsp传送,用以Tomcat解析
JkMount /*.do ajp13
#
Apache支持对.do传送,用以Tomcat解析
</VirtualHost>

启动ApacheTomcat后:
在地址栏中分别输入http://localhost/,与http://localhost:8080/若结果相同,ApacheTomcat整合成功

五、常见问题:

1. 配置Directory权限:

<Directory "D:\project\cztMH_new\WebRoot">

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

2. 一个入口多应用的图片显示问题:

创建目录D:\project,将部门网站和bbs分别放在这个目录下,在Tomcat中分别配置启动环境:D:\project\cztMH_new\WebRootD:\project\cztMH_new\WebRoot\bbs;然后在httpd.conf文件中配置虚拟机:

<VirtualHost 172.16.81.15:80>

ServerAdmin localhost

DocumentRoot D:\project\cztMH_new\WebRoot

<Directory "D:\project\cztMH_new\WebRoot">

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

ServerName localhost

DirectoryIndex index.html index.htm index.jsp

ErrorLog logs/shsc-error_log.txt

CustomLog logs/shsc-access_log.txt common

JkMount /servlet/* ajp13

JkMount /*.jsp ajp13

JkMount /*.do ajp13

JkMount /bbs/servlet/* ajp13

JkMount /bbs/*.jsp ajp13

JkMount /bbs/*.do ajp13

</VirtualHost>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics