您的位置:首页 > 运维架构 > Tomcat

Apache和Tomcat整合学习总结

2010-03-12 09:44 183 查看
ApacheTomcat整合学习总结
一、 ApacheTomcat的区别和联系:
1. Apache支持静态页,Tomcat支持动态。一般使Apache+Tomcat的话,Apache只是作为一个转发,对jsp的处理是由Tomcat来完成的。
2. Apache可以支持php/cgi/perl,但是要使用java的话,你需要Tomcat在Apache后台支撑,将java请求由Apache转发给Tomcat处理。
3. Apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行。
4. Apache是专门用来提供HTTP服务以及相关配置的(例如虚拟主机、URL转发等等),Tomcat是Apache组织在符合J2EE的JSP、Servlet标准下开发的一个JSP服务器。
二、为什么需要整合?
1. 整合的最主要原因是为了在现有的硬件条件下提供最大的负载。
2. 如果单独使用Tomcat做JSP服务器,在工作效率上会存在问题,Tomcat处理静态HTML的能力不如Apache,并且所能承受的最大并发连接数也有一定的限制。
3. 当并发连接较多时,Tomcat就会处于“僵死”状态,对后继的请求连接失去响应。所以现在提出一个“整合”解决方案:将html与jsp的功能部分进行明确分工,让Tomcat只处理jsp部分,其它的由Apache这个web server处理。Apache与Tomcat各司其职,那么服务器的整体效率就能够得到提升。
三、整合的基本原理:
1. 在实际操作中,主要是Apache作为主服务器运行,当监听到有jsp或者servlet的请求时,将请求转发给Tomcat服务器,由Tomcat服务器进行解析后,发回Apache,再由Apache发回用户。
2. 在Tomcat中有两个监听的端口,一个是8080用于提供web服务,一个是8009用于监听来自于Apache的请求。当Apache收到jsp或者servlet请求时,就向Tomcat 的8009端口发送请求,交由Tomcat处理后,再返回给Apache,由Apache返回给客户。
四、Apache和Tomcat的整合过程:
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服务进行控制,我们下面还要安装Tomcat和JK,所以现在选择 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>
启动Apache和Tomcat后:
在地址栏中分别输入http://localhost/,与http://localhost:8080/若结果相同,Apache与Tomcat整合成功
五、常见问题:
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/WebRoot、D:/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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: