整合apache2.2.x和tomcat5.5(转)

本文详细介绍如何将Tomcat与Apache进行整合,包括安装配置步骤及注意事项,旨在提高网站访问速度并合理分配动静态资源处理任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有的同学问,为什么要整合呢,用tomcat不就搞定了吗,而且现在的tomcat5.5以上版本有足够的能力处理静态资源了。但是当你的服务器即需要放Jsp又需要放php的时候,那80端口只能由apache去监听,tomcat无法监听了,整合后tomcat才能作为一个apache的子服务去调用。

Tomcat5.5 apache2.2.x 整合,有很多方式,不推荐proxyPass的方式,该方式经过我长期测试,是有bug的。
所以大部分 J2EE 的网站都是采用JK将二者整合的做法。
 
Apache 版本 2.2.x (x>=3)
 
过程如下;
 
1. 首先安装 apache, 装完后把 IIS 停掉后,再启动 apache 的服务器(安装时根据提示安装即可,安装目录一般不装到系统盘上)
 
2. 安装 tomcat (安装之前请先把 JDK 安装好)
 
3. 安装 tomcat 过程中会需要用户设置用户名和密码,密码部分记住一定要输,最好设置的尽量复杂些
 
4. 安装 mysql ( 安装过程有此不详述 )
 
5. 安装完成后把 mysql 的驱动程序 mysql-connector-java-5.0.4-bin.jar 放到 apache-tomcat-5.5.23/common/lib
 
6. jk 官方去下载者 windows 对应 apache 版本的 jk jk 官方下载地址: http://labs.xiaonei.com/apache-mirror/tomcat/tomcat-connectors/jk/binaries/
 
7. httpd.conf 中配置如下:
 
    a. 在该文件中找到这条语句 LoadModule rewrite_module modules/mod_rewrite.so 并把这条语句前面的 # 注释去掉,打开此模块
 
    b. 把该条语句 LoadModule jk_module modules/mod_jk-1.2.27-win-httpd-2.2.10.so 放入该文件中(其中该部分 mod_jk-1.2.27-win-httpd-2.2.10.so 是你所下的 JK 的版本号),是为了让 tomcat apache 进行通信的
 
    c. 把此语句 DocumentRoot "D:/Program Files/Apache Software Foundation/Apache2.2/htdocs" 改为 DocumentRoot "D:/webroot" ,(调置所有网站的家目录,若启用虚拟主机功能此设置自动失效)
 
    d. 把此语句 < Directory " D: / Program Files / Apache Software Foundation / Apache2.2 / htdocs " > 改为 < Directory " D: / webroot " > (为所有网站设置公共目录属性)
 
    e. 把此语句 Options Indexes FollowSymLinks 改为 Options  FollowSymLinks (禁止用户进行目录浏览)
 
    f. 把此语句 AllowOverride None   改为 AllowOverride All (使网站自已的重写规则生效)
 
    g. 把此语句 DirectoryIndex index.html 后添加 index.htm index.jsp 等(为网站目录设置默认首页)
 
    h.#Include conf/extra/httpd-vhosts.conf 前的 # 注释去掉,是为了启用虚拟主机
 
8. 配置 apache-tomcat-5.5.23/conf 下的 server.xml 文件 localhost 添加 context 单元。
 
    a. 如果只有一个域名,就只需添加 context 单元
 
    < Context path = "/web1" docBase = "D:/webroot/web1" >
        < Resource name = "jdbc/testDataSource" auth = "Container" type = "javax.sql.DataSource"
               maxActive = "100" maxIdle = "30" maxWait = "10000" removeAbandoned = "true"
               username = "root" password = "123" driverClassName = "com.mysql.jdbc.Driver"
               url = "jdbc:mysql://127.0.0.1:3306/web1db?useUnicode=true&characterEncoding=utf8" />
  </ Context >
  apache httpd.conf中找到 #Include conf/extra/httpd-vhosts.conf,去掉#号
    Apache Software Foundation/Apache2.2/conf/extra/vhost.conf 文件需要添加一个 VirtualHost 目录
 
       < VirtualHost * :80 >   DocumentRoot D:/webroot </ VirtualHost >
 
    b. 如果多于一个域名 , 则需要添加 host 单元( context 应包含其中)
   
    < Host name = "www.javadn.com" appBase = "webapps" unpackWARs = "true" autoDeploy = "true" xmlValidation = "false" xmlNamespaceAware = "false" >
    < Alias > javadn.com </ Alias >  
        < Context path = "" docBase = "D:/webroot/web1" >
    < Resource name = "jdbc/testDataSource" auth = "Container" type = "javax.sql.DataSource" maxActive = "100" maxIdle = "30" maxWait = "10000" removeAbandoned = "true" username = "root" password = "123" driverClassName = "com.mysql.jdbc.Driver" url = "jdbc:mysql://127.0.0.1:3306/web1db?useUnicode=true&characterEncoding=utf8" />
    </ Context >
    </ Host >
 
    注: Alias 别名可以指定多个,每在 server.xml 文件中添加一个 host 单元,就必须在 vhost.conf 文件中对应的添加一个 VirtualHost 单元, vhost.conf 文件中的 ServerName 的值对应 server.xml 中的 Host 单元的 name 值, ServerAlias 对应 server.xml 中的 Alias 值,如果有多个别名,可以排着往后写例如: ServerAlias javadn.com aaa.com www.bbb.com
   
    附: VirtualHost 常用配置
 
    < VirtualHost * :80 >
         DocumentRoot D:/webroot
         JkMount /*.jsp ajp13 (遇到 .jsp 的文就会通过 ajp13 交给 tomcat 来处理,像 .jpg,.gif 等文件则由 apache 来处理)
         JkMount /*.do ajp13
         ServerName www.javadn.com
          ServerAlias javadn.com aaa.com www.bbb.com
    </ VirtualHost >
   
    以上 .do .jsp 文件交由 tomcat 来处理;网站中的静态文件都交由 apache 来处理,因为 apahce 本身处理静态文件的速度比 tomcat 要快 ,这样一来动态文件由 tomcat 来处理,静态文件由 apache 来处理,不但减轻了 tomcat 的负担而且还有效的提高了网站的访问速度。
   
    重启 Tomcat ,重启 Apache ,成功。就是这么简单,注意上面的 ajp13 ,直接用就可以,我发现在 Apache2.2.3 以后的 jk 版本中已经默认实现了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值