日期:2014-05-16  浏览次数:20967 次

apache 集成多个tomcat的方法
背景:
   现有服务器只运行了一个网站 没有使用apache, tomcat端口为80 ,现在希望在服务器在添加一个站点 而不使用现有的tomcat.但多个tomcat不能共用一个80端口,所以希望通过apache使用80端口,然后在分发对应的tomcat,实现多个tomcat在一个服务器上共存.
    网上也有很多类似的实例,本文是参考多篇文章然后自己在本机动手测试成功之后写成的,但仍有许多不足,敬请谅解

环境与软件
     操作系统 xp
     apache 2.2
     tomcat 6.0.32

Tomcat1的设定
    Shutdown 端口
      <Server port="8016" shutdown="SHUTDOWN">
    http  端口
      <Connector connectionTimeout="20000" port="9080" protocol="HTTP/1.1" redirectPort="8443"/>
    AJP 端口
       <Connector port="8020" protocol="AJP/1.3" redirectPort="8443"/>
   HOTST 配置
      <Host appBase="webapps" autoDeploy="true" name="www.123.com" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">


Tomcat2的设定
    Shutdown 端口
      <Server port="8006" shutdown="SHUTDOWN">
    http  端口
      <Connector connectionTimeout="20000" port="9090" protocol="HTTP/1.1" redirectPort="8443"/>
    AJP 端口
       <Connector port="8030" protocol="AJP/1.3" redirectPort="8443"/>
   HOTST 配置
      <Host appBase="webapps" autoDeploy="true" name="www.abc.com" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">




Apache设定
  
  httpd.conf

1.  使用apache自带的proxy模块,去掉注释使其可用
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.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

2. 去掉 Include conf/extra/httpd-vhosts.conf的注释

  3.配置httpd-vhosts.conf 内容如下


  NameVirtualHost *:80
  <VirtualHost *:80>
ServerName  www.abc.com
ProxyPass / http://www.abc.com:9090/
ProxyPassReverse / http://www.abc.com:9090/
  </VirtualHost>
  <VirtualHost *:80>
ServerName www.123.com
ProxyPass / http://www.123.com:9080/
ProxyPassReverse / http://www.123.com:9080/
  </VirtualHost>

修改windows host文件
    127.0.0.1       www.abc.com
    127.0.0.1       www.123.com

   启动tomcat ,apache
   输入 www.abc.com www.123.com 终于不用使用端口号,大功告成 哦了!

   本人对apache配置不是很清楚, 也不了解apache proxy的工作原理,在apache和tomcat集成方便如有不足之处 请多多指教,共同进步 , 谢谢!
来源  http://www.iteye.com/topic/1126930