首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

Apache整合tomcat

作者:  时间: 2010-10-11

由于tomcat在处理静态数据的时候, 效果不是很理想, 所以最好是用apache或者nginx等来处理静态数据, 把动态数据送给tomcat来处理. 后续会讲到如何使用apache来做balance, 这里使用单balance来做集成.

 

环境:

Jdk 5.0 / Apache 2.2 / Tomcat 6.0

 

整合方法:

  1. 使用mod_proxy, 这种方式必须要apache 2.2以上. 2.2已经内置了, 需要释放这些mod.

只需将在conf/httpd.conf文件中将相关被注释掉的配置语句释放即可

需要释放的配置如下:

  • LoadModule proxy_module modules/mod_proxy.so
  • LoadModule proxy_connect_module modules/mod_proxy_connect.so
  • LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
  • LoadModule proxy_http_module modules/mod_proxy_http.so
  • LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
  • LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

 

  1. 加入转发代理地址配置:

在conf/httpd.conf文件最下面加入如下配置

ProxyRequests Off

<proxy balancer://cluster>

BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1 </proxy>

需要说明的是Apache在与Tomcat整合时允许进行集群配置cluster, 但本处不进行集群配置, 因此只需按照如上所述进行配

这个地方需要特别说明: apache的负载均衡是通过tomcat的ajp作为桥梁连接起来的, 所以, 在BalancerMember这个地方的配置一定要和tomcat中的配置一致.

 

  1. 打开虚拟服务器的配置

    在conf/httpd.conf文件找到这句语句:

    #Include conf/extra/httpd-vhosts.conf

    将其注释释放.

    相关的虚拟服务器的配置将在conf/extra/httpd-vhosts.conf文件中进行设置

    所谓的虚拟服务器: 比如在balance的时候, 2台tomcat, 但是在apache这边, 看起来就是一台虚拟服务器.

     

  2. 加入jsp文件支持

    在conf/httpd.conf文件找到这句语句

    <IfModule dir_module>

    DirectoryIndex index.html

    </IfModule>

    将其改为如下

    <IfModule dir_module>

    DirectoryIndex index.html index.jsp

    </IfModule>

     

  3. 修改conf/extra/httpd-vhosts.conf文件配置虚拟服务器

    在文件最后加入如下配置

    <VirtualHost *:80>

    ServerAdmin webmaster@dummy-host3.steel.com

    ServerName localhost

    ServerAlias localhost

    ProxyPass /images !

    ProxyPass /css !

    ProxyPass /js !

    ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On

    ProxyPassReverse / balancer://cluster/

    </VirtualHost>

以上, apache方面配置完成.

 

Tomcat配置:

Tomcat只需要修改tomcat/conf/server.conf就可以了.

  1. 修改Engine配置:

    找到下面这句语句

    <Engine name="Catalina" defaultHost="localhost">

    将其修改为如下

    <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">

    注意 这个地方的jvmRoute的名字一定要和apache中的配置中一致.

     

  2. 修改/确认Connector配置

    检查文件中对Connector端口8009配置是否如下

    若不是, 请修改之。

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    注意: 这里面的端口8009一定要和apache中的配置 一致.

 

测试:

在浏览器中输入: http://localhost

如果能够看到tomcat的小猫猫页面, 说明成功.