zoukankan      html  css  js  c++  java
  • Apache+Tomcat集群

     

     

    版本:

    httpd-2.2.22-win32-x86-openssl-0.9.8t.msi

    apache-tomcat-7.0.27-windows-x64.zip

    windows7 64bit

     

     

     

    实例名称

    修改的文件

    Tcp端口(shutdown,AJP Connector)

    jvmRoute属性值

    TCP端口

    Machine1

    \cluster\machine1\conf\server.xml

    8015,8019

    Machine1

    5019

    Machine2

    \cluster\machine2\conf\server.xml

    8025,8029

    Machine2

    5029

    Machine3

    \cluster\machine3\conf\server.xml

    8035,8039

    Machine3

    5039

     

     

    此处选择的设置确保在同一物理机器上同时启动3个实例不会冲突。如果实际在网络中的3个物理机器上进行测试,它们可以都使用表中的Machine1.。

     

     

    Server.xml 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"/>

             -->  

              <Manager className="org.apache.catalina.ha.session.DeltaManager"

                       expireSessionsOnShutdown="false"

                       notifyListenersOnReplication="true"/>

                  

              <Channel className="org.apache.catalina.tribes.group.GroupChannel">

                <Membership className="org.apache.catalina.tribes.membership.McastService"

                            address="228.0.0.4"

                                                            bind="192.168.1.104"

                            port="45564"

                            frequency="500"

                            dropTime="3000"/>

                <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"

                          address="auto"

                          port="5019"

                          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>

     

    加粗的标识根据实际需要变更。

     

    Apache修改的地方

    Conf\httpd.conf

    启用以下模块:

    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

     

    启用:

    Include conf/extra/httpd-vhosts.conf

    修改conf/extra/httpd-vhosts.conf

     

    <VirtualHost *:80>

        ServerAdmin webmaster@dummy-host.cliff.com.cn

        DocumentRoot "C:/Install/Apache2.2/docs/dummy-host.cliff.com.cn"

        ServerName dummy-host.cliff.com.cn

        ServerAlias www.dummy-host.cliff.com.cn

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

             ProxyPassReverse  / balancer://cluster

             ProxyRequests Off

             ProxyPreserveHost On

        ErrorLog "logs/dummy-host.cliff.com.cn-error.log"

        CustomLog "logs/dummy-host.cliff.com.cn-access.log" common

    </VirtualHost>

     

    ProxyRequests Off 

    <proxy balancer://cluster>

        BalancerMember ajp://192.168.1.104:8019 loadfactor=1 route=Machine1

             BalancerMember ajp://192.168.1.104:8029 loadfactor=1 route=Machine2

             BalancerMember ajp://192.168.1.104:8039 loadfactor=1 route=Machine3

    </proxy>

     

     

     

    每个需要集群应用的web.xml 中加入以下配置:

    <distributable/>

     

    创建测试 session.jsp内容如下:

    <%

      //HttpSession session = request.getSession(true);

      System.out.println(session.getId());

      out.println("<br> SESSION ID:" + session.getId()+"<br>");

     

    %>

     

    访问session.jsp查看.

     

     

  • 相关阅读:
    转部机器人相关的电视剧
    斯坦福大学自然语言处理第一课“引言(Introduction)”
    丹尼斯·洪:讲述他的七种全地形机器人
    斯坦福大学自然语言处理公开课课件汇总
    大数据挖掘
    脑机接口技术真能破译我们的想法吗?
    现代战场 机器人的崛起
    斯坦福大学自然语言处理第三课“最小编辑距离(Minimum Edit Distance)”
    MIT开放式课程“自然语言处理”介绍
    斯坦福大学自然语言处理第六课“文本分类(Text Classification)”
  • 原文地址:https://www.cnblogs.com/huangzhijun/p/2723716.html
Copyright © 2011-2022 走看看