准备工作:

注:可点击链接直接下载相应的文件。

JDK 免述,这个要是搞不定,直接回家种地吧。本文使用1.6.0_13

Tomcat版本号:apache-tomcat-6.0.18.zip

Apache版本号:apache_2.2.11-win32-x86-openssl-0.9.8i

另外:  tomcat-connectors-1.2.28-src.zip  (apache网站tomcat项目下有下载)

              mod_jk-1.2.28-httpd-2.2.3.so(2.2.3适合于apache2.2.x版本)

程序安装:

  1. 正常安装apache(默认安装到C:\Program Files\Apache Software Foundation\Apache2.2目录下)
  2. 解压缩apache-tomcat-6.0.18.zip到C:\Program Files\Apache Software Foundation\Tomcat6.0目录下,解压完毕后,重命名tomcat6.0_1,
  3. 复制tomcat6.0_1文件夹,重命名为tomcat6.0_2
  4. 拷贝mod_jk-1.2.28-httpd-2.2.3.so 到Apache2.2/modules目录下
  5. 解压tomcat-connectors-1.2.28-src.zip,拷贝 tomcat-connectors-1.2.28-src\conf文件夹中的 workers.properties 到Apache2.2/conf 目录下(该文件中配置用于集群的Tomcat信息)

tomcat配置:

注:以下配置使用端口号可自行定义,只要不和系统中已经使用的端口号冲突即可。

  1. conf文件夹下的server.xml文件作如下修改:

1)        更正SHUTDOWN端口(两个tomcat分别使用8005和8006)

<Serverport="8005" shutdown="SHUTDOWN">

2)        HTTP1.1的connector可以关闭不使用(由apache调度),也可以不关闭(亦可访问响应端口,即不通过apache调度,设定的端口不应与其他端口重复)。

<!--Connector port="8090" protocol="HTTP/1.1" connectionTimeout="20000" ctPort="8443" /-->

3)        更正AJP1.3端口(两个tomcat分别使用8090和8091),redirectPort亦应不同(分别使用8443和8444)。

<Connectorport="8090" protocol="AJP/1.3" redirectPort="8443" />

4)        替换原来的engine标签,设置jvmRoute的路径以支持通过AJP的负载均衡(不同的tomcat配置不同的jvmRoute,这里使用tomcat01,tomcat02)

<Enginename="Standalone" defaultHost="localhost" jvmRoute="tomcat01">

5)        设置cluster属性,其中Receiver的端口页应为唯一的不重复的端口(两个tomcat分别使用5002和5003)。

<ClusterclassName="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6">

          <ManagerclassName="org.apache.catalina.ha.session.BackupManager"

              expireSessionsOnShutdown="false"

              notifyListenersOnReplication="true"

              mapSendOptions="6"/>

          <ChannelclassName="org.apache.catalina.tribes.group.GroupChannel">

              <MembershipclassName="org.apache.catalina.tribes.membership.McastService"

                  address="228.0.0.4"

                  port="45564"

                  frequency="500"

                  dropTime="3000"/>

              <ReceiverclassName="org.apache.catalina.tribes.transport.nio.NioReceiver"

                  address="auto"

                  port="5003"

                  selectorTimeout="100"

                  maxThreads="6"/>

              <SenderclassName="org.apache.catalina.tribes.transport.ReplicationTransmitter">

                  <TransportclassName="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>

              </Sender>

              <InterceptorclassName="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>

              <InterceptorclassName="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>

              <InterceptorclassName="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>

          </Channel>

          <ValveclassName="org.apache.catalina.ha.tcp.ReplicationValve"

              filter=""/>

          <ValveclassName="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

       

          <DeployerclassName="org.apache.catalina.ha.deploy.FarmWarDeployer"

              tempDir="/tmp/war-temp/"

              deployDir="/tmp/war-deploy/"

              watchDir="/tmp/war-listen/"

              watchEnabled="false"/>

        <ClusterListenerclassName="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>

        <ClusterListenerclassName="org.apache.catalina.ha.session.ClusterSessionListener"/>

      </Cluster>

6)        在host节点中增加context指定应用程序路径。

<Contextpath="" reloadable="true" docBase="C:\Program Files\Apache Software Foundation\myApp" > </Context>

apache配置:

  1. Apache2.2\conf文件夹下: http.conf文件修改

LoadModule jk_module modules/mod_jk-1.2.28-httpd-2.2.3.so

JkWorkersFile "C:/Program Files/Apache Software Foundation/Apache2.2/conf/workers.properties"

JkLogFile "C:/Program Files/Apache Software Foundation/Apache2.2/logs/mod_jk2.log"

#设置Apache支持对servlet传送,用以Tomcat解析,loadbalancer对应于workers.properties中的配置

JkMount /servlet/* loadbalancer

#置Apache支持对jsp传送,用以Tomcat解析

JkMount /*.jsp loadbalancer

#设置Apache支持对.do传送,用以Tomcat解析

JkMount /*.do loadbalancer

在httpd.conf的最后加入如下信息配置要集群的服务器,以下信息均与要集群的Tomcat对应

ProxyRequests Off

<proxy balancer://cluster>

  BalancerMember ajp://127.0.0.1:8090 loadfactor=1 route=tomcat01

  BalancerMember ajp://127.0.0.1:8091 loadfactor=1 route=tomcat02

</proxy>

  1. Apache2.2\conf文件夹下: workers.properties文件修改,查找并更正为如下:

workers.tomcat_home=C:\Program Files\Apache Software Foundation\Tomcat 6.0_1rogram Files\Apache Software Foundation\Tomcat 6.0_2

workers.java_home=C:\Program Files\Java\jdk1.6.0_13

worker.list=loadbalancer,tomcat01,tomcat02

# 定义第一个集群节点

worker.tomcat01.port=8090

worker.tomcat01.host=localhost

worker.tomcat01.type=ajp13

worker.tomcat01.lbfactor=1

# 定义第二个集群节点

worker.tomcat02.port=8091

worker.tomcat02.host=localhost

worker.tomcat02.type=ajp13

worker.tomcat02.lbfactor=1

# 负载均衡行为

worker.loadbalancer.type=lb

worker.loadbalancer.balance_workers=tomcat01,tomcat02

worker.loadbalancer.sticky_session=1

部署应用程序配置:

拷贝你的应用程序到C:\Program Files\Apache Software Foundation\目录下,(假定名称myApp)

对于进行负载和集群的tomcat应用程序,在web.xml中应添加一项配置<distributable/>,添加的位置如下所示:

<web-app>

<distributable/>

</web-app>

总结:

以上配置主要注意一下端口的更正,不同的tomcat要使用不同的端口:

shutdown port

HTTP port

HTTP port redirect port

AJP port

AJP redirect port

Receiver port

相关文章:

  • 2021-06-28
  • 2021-09-12
  • 2021-09-05
  • 2021-06-29
  • 2021-10-08
  • 2022-12-23
  • 2022-12-23
  • 2022-01-18
猜你喜欢
  • 2021-09-17
  • 2021-04-26
  • 2022-02-13
  • 2021-10-18
  • 2021-07-29
  • 2022-12-23
  • 2022-02-09
相关资源
相似解决方案