Chinaunix首页 | 论坛 | 博客
  • 博客访问: 71135
  • 博文数量: 33
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 220
  • 用 户 组: 普通用户
  • 注册时间: 2014-07-15 22:22
文章分类

全部博文(33)

文章存档

2016年(3)

2015年(23)

2014年(7)

我的朋友

分类: Java

2015-12-09 23:33:25

转载自:http://blog.csdn.net/solidwang/article/details/5372739
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端口,那么在浏览器中输入  ,如果使用的是其它端口例如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文件:

中加入以下语句修改默认目录。

配置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

#设置虚拟主机

#
如果非虚拟主机,将和最后的注释或者删除掉即可
ServerAdmin localhost
DocumentRoot D:/project/cztMH_new/WebRoot
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解析

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

五、常见问题:

1.       配置Directory权限:

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

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

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

ServerAdmin localhost

DocumentRoot D:/project/cztMH_new/WebRoot

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

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

阅读(605) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~