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

Apache和Tomcat 的整合应用

2011-11-25 16:03 295 查看
前言:

使用Apache的好处

Tomcat除了支持Java Servlet/JSP之外,也可以当做网站服务器使用,但是在对于静态的html文件图片文件等的解析效率上不如Apache HTTPD的执行效率高。应用tomcat的服务器如果网站的访问量较大,系统资源占用会明显升高,

Apache 和Tomcat 工作过程:

Apache 作为主服务器运行,当监听到有jsp或者servlet的请求时,将请求转发给tomcat服务器,由tomcat服务器进行解析后,发回apache,再由apache发回用户。在tomcat中有两个监听的端口,一个是8080用于提供web服务,一个是8009用于监听来自于apache的请求。apache收到jsp或者servlet请求时,就向tomcat 的8009端口发送请求,交由tomcat处理后,再返回给apache,由apache返回给客户。

需求:

页面一个图片请求-》Apache获取请求-》转发到Tomcat Servlet->Servlet 执行解压缩程序->Servlet 输出到页面。

准备工作:

JDK:D:\Program Files\Java\jdk1.6.0_18

Apache2.2:D:\Apache2.2

Tomcat:D:\tomcat-6.0.33

下载mod_jk-apache-2.2.4.so文件放入到Apache的modules目录下

配置Tomcat:

(1)、在D:\tomcat-6.0.33\conf目录下创建workers.properties文件编辑如下:

#让mod_jk模块知道Tomcat的位置
workers.tomcat_home=D:\tomcat-6.0.33
#让mod_jk模块知道jre的位置
workers.java_home=D:\Program Files\Java\jdk1.6.0_18 
#模块版本
ps=\
worker.list=ajp13 
#工作端口,若没占用则不用修改
worker.ajp13.port=8009 
#本机,若上面的Apache主机不为localhost,作相应修改
worker.ajp13.host=localhost 
#类型
worker.ajp13.type=ajp13 
#负责均衡因子
worker.ajp13.lbfactor=1

(2)、配置tomcat 目录下的server.xml 文件,在<host></host>加入

<Context path="" docBase="D:\mapbar\data\www\image" reloadable="true" crossContext="true"/>

D:\mapbar\data\www\image目录为图片tar包存放路径

配置Apache:

(1)、编辑httpd.conf,修改DocumentRoot 为:

DocumentRoot "D:\mapbar\data\www\image"

D:\mapbar\data\www\image路径存放的图片tar文件

(2)编辑httpd.conf,在后面追加

#设置Apache与Tomcat之间的连接,让Apache遇到jsp,gif,png,servlet文件时,在后台将其交由Tomcat去处理
#加载mod_jk文件
LoadModule jk_module modules/mod_jk-apache-2.2.4.so
#加载跳转文件
LoadModule rewrite_module modules/mod_rewrite.so
#指定tomcat监听配置文件地址
JkWorkersFile "D:/tomcat-6.0.33/conf/workers.properties"
#指定日志存放位置
JkLogFile "D:/tomcat-6.0.33/logs/imges.log" 
JkLogLevel info
#重定向
RewriteEngine On
RewriteRule ^[/s/S]*/maplite/mapbank/mapbar/(.*)$ http://localhost/ImageTar/ReadTarImage/maplite/mapbank/mapbar/$1 [L]
# 只是图片请求的URL 进行发送到tomcat进行处理
#JKMount /*.gif ajp13
JKMount /*.png ajp13
#JkMount /servlet/* ajp13
#让Apache支持对jsp传送,用以Tomcat解析
JkMount /*.jsp ajp13


注意RewriteRule 的写法

格式:模式(pattern) 跳转 [可选项]

(pattern)是一个正则式,用以匹配当前的URL。

比如:请求的url :http://localhost/maplite/mapbank/mapbar/7/58_25/3_0.png

Apache 会自动跳转到 http://localhost/ImageTar/ReadTarImage/maplite/mapbank/mapbar/7/58_25/3_0.png。ImageTar为工程名称,ReadTarImage为一个Servlet。
在web.xml文件里面 <url-pattern>*.png</url-pattern>配置了*.png通配符,这样就进入了Servlet。

修改完成这后,再次执行D:\Apache2.2\bin\httpd -t 如果看到"Syntax OK",说明你所有配置无误
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: