tomcat+apache

apache+tomcat+jk整合(多tomcat最新版本)
2009-01-08 17:09

by gdyw1999 2009/02/19
E-MALI:[email protected] blog: http://hi.baidu.com/gdyw1999

os:windows2003 SP2
DB:linux下mysql5.22
web: apache_2.2.11-win32-x86-no_ssl.msi
JSP容器:apache-tomcat-6.0.18.zip
JAVA:jdk-6u11-windows-i586-p.exe
连接器:mod_jk-1.2.27-httpd-2.2.10.so 及tcnative-1.dll(优化tomcat对ajp13的支持,安装见http://hi.baidu.com/gdyw1999/blog/item/6ea1aff8b8e8d608d8f9fdf6.html)
ip:192.168.10.253    

现测试服务器安装软件如上,同时使用3个TOMCAT ,APACHE只处理静态页面、图片、flash等,可根据情况具体配置。

192.168.10.253上TOMCAT分别为:
tomcat.8109
tomcat.8209
tomcat.8309

JDK及APAHCE的安装略过,tomcat使用zip版,无需安装。

httpd.conf 尾添加以下内容:

# (httpd.conf)
# Load Mod mod_jk
LoadModule jk_module modules/mod_jk.so


#
# Configure mod_jk
#

#
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

# ###########################HOST################


NameVirtualHost 192.168.10.253:80

# ################# decent21 host #################3
<VirtualHost 192.168.10.253:80>
         DocumentRoot D:/test/8109
         DirectoryIndex index.html index.htm index.jsp index.php
         ServerName www.8109.com
         JkMountFile conf/8109workermap.properties
         Options None
</VirtualHost>


<VirtualHost 192.168.10.253:80>
         DocumentRoot D:/test/8209
         DirectoryIndex index.html index.htm index.jsp index.php
         ServerName www.8209.com
         ServerAlias www.8209.com.cn
         JkMountFile conf/8209workermap.properties
         Options None
</VirtualHost>

<VirtualHost 192.168.10.253:80>
         DocumentRoot D:/test/8309
         DirectoryIndex index.jsp index.html index.php
         ServerName www.8309.com
         JkMountFile conf/8309workermap.properties
         Options None
</VirtualHost>


在apache/conf目录下分别建立4个文件,文件名为:8109workermap.properties   8209workermap.properties 8309workermap.properties 及workers.properties
workers.properties 添加以下内容:
#
worker.list=test1,test2,test3
# ------------------------
# localhost server 1
# ------------------------
worker.test1.port=8109
worker.test1.host=127.0.0.1
worker.test1.type=ajp13
worker.test1.lbfactor=1


# ------------------------
# localhost server 2
# ------------------------
worker.test2.port=8209
worker.test2.host=127.0.0.1
worker.test2.type=ajp13
worker.test2.lbfactor=1


# ------------------------
# localhost server 3
# ------------------------
worker.test3.port=8309
worker.test3.host=127.0.0.1
worker.test3.type=ajp13
worker.test3.lbfactor=1

###################   分割线   ###################
#下面的说明,无需添加至文件内:
#注:worker.list=test1,test2,test3   表示 有3个工作池,分别是test1、test2、test3,
#      worker.test1.port=8109          表示    工作池test1使用8109端口,可以使用任何端口,可以把TOMCAT放到不同的机器上面
#      worker.test1.host=127.0.0.1   表示 工作池test1的地址,可以使用任何IP,可以把TOMCAT放到不同的机器上面
#      worker.test1.type=ajp13       表示 工作池test1使用ajp13

8109workermap.properties 添加以下内容:

/*=test1


!/*.htm=test1
!/*.html=test1
!/*.gif=test1
!/*.jpg=test1
!/*.bmp=test1
!/*.png=test1
!/*.jpeg=test1
!/*.swf=test1
!/*.fla=test1
!/*.flv=test1
!/*.avi=test1
!/*.css=test1
!/*.js=test1


!/images/*=test1
!/music/*=test1
!/vedio/*=test1
!/flash/*=test1
!/upload/*=test1

8209workermap.properties 添加以下内容:

请将8109workermap.properties的内容复制修改所有test1为test2(/*=test2等

8309workermap.properties 添加以下内容:

请将8109workermap.properties的内容复制修改所有test1为test3(/*=test3等

###################   分割线   ###################
#下面的说明,无需添加至文件内:
#注:/*=test1 表示所有的请求都交给工作池test3处理,!/*.htm=test1 表示排除/*.htm ,具体内容请自己把握。

解压apache-tomcat-6.0.18.zip文件到D:/ 目录将名称修改tomcat.8109,再COPY2份,分别重命名为:
tomcat.8209、tomcat.8309

修改d:/tomcat.8109/conf/server.xml 文件
具体请修改下面:

tomcat+apache_第1张图片

    图1

<Server port="8105" shutdown="SHUTDOWN">   ,端口修改为8105

 tomcat+apache_第2张图片

        图2

屏蔽 8080 ,即tomcat不提供http 服务。

      图3

    <Connector port="8109" protocol="AJP/1.3" redirectPort="8443" /> ,AJP/1.3使用8109端口通讯

这3个地方是运行多TOMCAT的关键。

请依次修改d:/tomcat.8209/conf/server.xml 、d:/tomcat.8309/conf/server.xml 文件内上文的3处修改:

图1    <Server port="8205" shutdown="SHUTDOWN">   ,tomcat.8209使用8205端口,此处端口不冲突即可。

图1    <Server port="8305" shutdown="SHUTDOWN">   ,tomcat.8309使用8305端口

图3   <Connector port="8209" protocol="AJP/1.3" redirectPort="8443" /> ,tomcat.8209使用8209端口通讯。

图3     <Connector port="8309" protocol="AJP/1.3" redirectPort="8443" /> ,tomcat.8309使用8309端口通讯。此处端口与workers.properties文件内定义端口对应

每个server.sml文件内修改添加对应虚拟主机,请自行屏蔽其他2个(tomcat.8109添加WWW.8109.COM 即可),注意红色部分,:

<!--
</Host>
-->

        
      <Host appBase="webapps" name="www.8109.com">
      <Alias>www.online-city.com.cn</Alias>
      <Context docBase="D:/test/8109" path="" reloadable="true">
      </Context>
     </Host>

      <Host appBase="webapps" name="www.8209.com">
      <Context path="" docBase="D:/test/8209" reloadable="true">
      </Context>
      </Host>

      <Host appBase="webapps" name="www.8309.com">
      <Context docBase="D:/test/8309" path="" reloadable="true">
      </Context>
      </Host>

    </Engine>
</Service>
</Server>

别忘记了把mod_jk-1.2.27-httpd-2.2.10.so ,文件copy到apache/modules/目录下,并重新命名为mod_jk.so。

现在,再分别建立3个BAT(8109.bat 8209.bat 8309.cat )文件,供启动tomcat使用:

内容如下:

@echo off
@d:
@set JAVA_HOME=C:/Java/jdk1.6.0_11
@set PATH=%JAVA_HOME%/bin;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem
@set CLASSPATH=.;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar
@cd /tomcat.8109/bin
@cls
startup.bat

###################   分割线   ###################

说明,无需添加至文件内:
注:set JAVA_HOME=C:/Java/jdk1.6.0_11 请修改为您的JDK 目录:
注: cd /tomcat.8109/bin 请修改与(8109.bat 8209.bat 8309.cat )文件对应tomcat.8209、tomcat.8309

搭这个环境,中间走了很多弯路,总结下:

1. httpd.conf 文件内 每个虚拟主机添加 JkMountFile conf/8109workermap.properties
指定AJP转交后,TOMCAT处理什么,要不会出现APACHE 解析不了的JSP等文件时,显示源码或提示下载。

2.tomcat的配置文件server.xml,到底需要修改什么

3.JK的工作池配置文件workers.properties怎么写,工作池名称怎么定义?在这里工作池名称不需要定义你可以随便起,在启用 tomcat的server.xml文件内
    <!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">        
    -->
    <Engine name="Catalina" defaultHost="localhost">)

时,才需要server.xml 与workers.properties对应,这个不是本文探讨的范围。

你可能感兴趣的:(tomcat+apache)