`
1028826685
  • 浏览: 950228 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类

Apache2.2.11+Tomcat6.0 集群配置 总结

    博客分类:
  • J2EE
阅读更多
最近公司需要配置集群 在网上找了很多的资料 都没有怎么个成功 配合网上的资料和一些博客总结如下:

1负载均衡的概念:就是apache将客户请求均衡的分给tomcat1,tomcat2....去处理

2 环境说明(Apache端口:80不需出来 Apache端口:8080 在 Apache安装bin目录下(dos下) 执行httpd -k install)

tomcat-6.0.18免安装版本(zip版)2个
apache_2.2.11-win32-x86-no_ssl.msi:
tomcat的负载均衡需要apache服务器的加入来实现。在进行配置之前请先卸载调已安装的tomcat,然后检查apache的版本。如果版本低于2.2负载均衡的配置要有所不同,因为这个2.2.11和2.2.8版本集成了jk2等负载均衡工具,所以配置要简单许多。别的版本我没有具体测试,有待考究。这两个软件可以到官方网站下载
把Apache安装为运行在80端口的Windows服务,安装成功后在系统服务列表中可以看到Apache2.2服务。服务启动后在浏览器中输入http://localhost进行测试,如果能看到一个"It works!"的页面就代表Apache已经正常工作了。把tomcat解压到任意目录,赋值一个另命名。起名和路径对配置没有影响。但要保证端口不要冲突,如果装有Oracle或IIS的用户需要修改或关闭相关接口的服务。当然jdk的配置也是必须的,这个不再过多叙述。
3 配置步骤
第一步,在Apache安装目录下找到conf/httpd.conf文件,去掉以下文本前的注释符(#)以便让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
第二步, 向下拉动文档找到<IfModule dir_module>节点,在DirectoryIndex index.html后加上index.jsp,这一步只是为了待会配置完tomcat后能看到小猫首页,可以不做。继续下拉文档找到Include conf/extra/httpd-vhosts.conf,去掉前面的注释符。
 


第三步,然后打开conf/extra/httpd-vhosts.conf,配置虚拟站点,在最下面加上
<VirtualHost *:80>
ServerAdmin lvp@tzx.com.cn
         ServerName localhost
         ServerAlias localhost
         ProxyPass / balancer://sy/ stickysession=jsessionid nofailover=On
         ProxyPassReverse / balancer://sy/
         ErrorLog "logs/sy-error.log"
         CustomLog "logs/sy-access.log" common
</VirtualHost>
第四步,然后回到httpd.conf,在文档最下面加上
ProxyRequests Off
<proxy balancer://sy>
       BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1
       BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=jvm2
</proxy>
第五步,
分别打开两个tomcat的server.xml配置文件,其中一台可以采用默认的设置,只需要修改两个地方,而另一个要有较大改动以避免与前一台冲突。如果两台不在同一台服务器上运行,对于端口就不需做改动。首先是配置关闭端口,找到<Server port="8005" shutdown="SHUTDOWN">,第一台不变,把第二台改为9005。



第六步,
下面配置server.xml配置文件的Connector端口,找到non-SSL HTTP/1.1 Connector,即tomcat单独工作时的默认Connector,保留第一台默认配置,在8080端口侦听,而把第二台设置为在9080端口侦听。
第七步,
往下找到AJP 1.3 Connector,<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />,这是tomcat接收从Apache过来的ajp连接请求时使用的端口,保留第一台默认设置,把第二台端口改为9009。
第八步,
第一台tomcat的server.xml中找到<Engine name="Catalina" defaultHost="localhost">,去掉这段或改为注释,把上方紧挨的<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">注释符去掉,对于第二台,去掉注释符并把jvm1改为jvm2。  
第九步,
第一种:(一般程序配置)
向下找到<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>,去掉注释,这里的配置是为了可以在集群中的所有tomcat节点间共享会话(Session)。如果仅仅为了获得一个可用的tomcat集群,Cluster只需要这么配置就可以了。
(特殊程序配置-我使用的这个成功在我们的门户网站实现集群)
第二种:
  <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
                 channelSendOptions="6">

          <Manager className="org.apache.catalina.ha.session.BackupManager"
                   expireSessionsOnShutdown="false"
                   notifyListenersOnReplication="true"
                   mapSendOptions="6"/>

          <Channel className="org.apache.catalina.tribes.group.GroupChannel">
            <Membership className="org.apache.catalina.tribes.membership.McastService"
                        address="228.0.0.4"
                        port="45564"
                        frequency="500"
                        dropTime="3000"/>
            <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                      address="auto"
                      port="5000"
                      selectorTimeout="100"
                      maxThreads="6"/>

            <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
              <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
            </Sender>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
          </Channel>

          <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
                 filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>

          <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
                    tempDir="/tmp/war-temp/"
                    deployDir="/tmp/war-deploy/"
                    watchDir="/tmp/war-listen/"
                    watchEnabled="false"/>

          <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
        </Cluster>

第十步,
配置成功后。在webapps目录下新建test目录,在test目录下新建test.jsp文件
在test目录下继续新建WEB-INF目录和web.xml,在<web-app>节点下加入<distributable />,这一步非常重要,是为了通知tomcat服务器,当前应用需要在集群中的所有节点间实现Session共享。如果tomcat中的所有应用都需要Session共享,也可以把conf/context.xml中的
<Context>改为<Context distributable="true">,这样就不需对所有应用的web.xml再进行单独配置。测试代码完成!(test目录在打包文件中)




测试用例:
先启动Apache服务,在先后启动两台tomcat,分别点startup.bat批处理。如果一切顺利的话,就会启动成功。再次访问http://localhost,可以看到小猫页面。访问http://localhost/test/test.jsp。可以看到包括服务器地址,端口,session等信息在内的页面。
        然后你可以测试一下容错功能,关闭一个tomcat,看看服务是否正常,然后重启tomcat,关掉另一台tomcat,看看是否也可以继续提供服务。



希望对您有帮助。。。。。
分享到:
评论

相关推荐

    Apache2.2+tomcat6.0配置[归类].pdf

    Apache2.2与Tomcat6.0的集成配置是一个常见的软件开发任务,特别是在构建高性能、高可用性的Web应用服务器环境中。Apache作为静态内容处理的强力HTTP服务器,与Tomcat(一个流行的Java Servlet容器)结合使用,可以...

    Windows平台上的Apache+Tomcat配置指南收集.pdf

    在Windows平台上配置Apache+Tomcat环境,主要是为了搭建一个能够处理Java Web应用的服务器。Apache HTTP服务器作为前端服务器,负责处理HTTP请求,并通过mod_jk模块与后台的Tomcat Web应用容器进行通信。以下是详细...

    windows下java pache-tomcat-6.0.20与apache_2.2.11整合

    本文档详细介绍了如何在 Windows 系统上安装配置并整合 Apache Tomcat 6.0.20 和 Apache 2.2.11。这种整合可以有效地提升 Web 应用程序的性能和服务质量,同时也能让 Web 开发者更加灵活地管理应用程序。以下是整个...

    集群技术手册

    - 解压 `tomcat-connectors-1.2.28-src.zip`,并将其中的 `workers.properties` 文件拷贝到 `Apache2.2\conf` 目录下,此文件用于配置集群中的Tomcat实例信息。 ##### 2.3 Tomcat配置 接下来对Tomcat实例进行必要...

    java论坛一键搭建Easyjsprun! v6.0.0 UTF-8 For linux 110530.zip

    仅适用于未安装配置 Apache Tomcat JDK MySQL 的 Linux 系统,请务必在开始安装前检查系统环境,如果您的服务器中已经安装配置了上述环境,请全部卸载后再使用 EasyJspRun! 进行安装,否则安装程序会自动卸载旧的...

    java论坛一键搭建Easyjsprun! v6.0.0 GBK For linux 110530.zip

    仅适用于未安装配置 Apache Tomcat JDK MySQL 的 Linux 系统,请务必在开始安装前检查系统环境,如果您的服务器中已经安装配置了上述环境,请全部卸载后再使用 EasyJspRun! 进行安装,否则安装程序会自动卸载旧的...

Global site tag (gtag.js) - Google Analytics