前言:
使用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