zoukankan      html  css  js  c++  java
  • apache tomcat 集群!

    公司需要一个内部测试局域网, 要求可以支持3000并发访问!以前也没做过服务器这方面、临时抱佛脚,查看了N多文档,他人经验,布置好之后,又遇到了N多问题,功夫不负有心人、终于还是完成了要求!观他人的布置经验- 总有不全的地方,所以把自己的经历写下来、作后来使用!

    接到了这个任务、首先我想到的是apache httpserver 与tomcat集群.

    一、环境: win7    4cpu     8G!

    二、软件:apache2.25    tomcat7    jre7u55

    三、apache2.25安装、这个比较简单 一路next 、  唯一需要注意的是:apache 默认使用的80端口,安装之前看一下此端口有没有被占用,如有,关闭了它!

    运行cmd  输入命令netstat -ano|findstr "80"  !

      配置apache

    1. 安装目录apache下找到conf/httpd.conf  找到mod_proxy.so 、mod_proxy_ajp.so、mod_proxy_balancer 取消注释,如下:

        

      LoadModule proxy_module modules/mod_proxy.so  #mod  代理
      LoadModule proxy_ajp_module modules/mod_proxy_ajp.so   #ajp协议
      LoadModule proxy_balancer_module modules/mod_proxy_balancer.so  #tomcat集群
    2. 启用httpd-mpm.conf   、httpd-vhosts.conf   文件,  找到并取消注释 如下:
      Include conf/extra/httpd-vhosts.conf    #定义服务器   如何定义后面会讲
      Include conf/extra/httpd-mpm.conf   #优化apache 如何优化后面会讲 
    3. 配置代理集群对象在文件最后添加如下代码
      <proxy balancer://cluster>
      
      BalancerMember ajp://127.0.0.1:8009 loadfactor=2 route=jvm1
      
      BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=jvm3
      
      </proxy>
           loadfactor:代表tomcat调用权重,这里表示当有3个请求进来时,apache 分配2个请求给jvm1标识的tomcat,1个请求给jvm3标识的tomcat!                                 route:代表apache使用apache协议对tomcat的标识,具体配置会在tomcat配置里面讲!                                                                                                    route:代表apache使用apache协议对tomcat的标识,具体配置会在tomcat配置里面讲!
    4. 配置conf/extra/vhots.conf:这里只需要在文件的最后添加以下代码:                                                        
      <VirtualHost *:80>
      
               ServerAdmin 1665656796@qq.com
      
               ServerName  localhost
      
               ServerAlias localhost
      
               ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
      
               ProxyPassReverse / balancer://cluster/
      
      </VirtualHost>

      这里面有一些参数  serveradmin  可以随意   ,serverName,与serverAlias 测试部署阶段可以直接设置为localhost .proxypass与proxypassreverse 可以不做修改,后期明白它的含义了可以根据自己喜好修改!  

    5. 找到httpd.conf文件在 DirectoryIndex 配置后面添加index.jsp  如下:                                                                                                                        

      <IfModule dir_module>
          DirectoryIndex index.html index.jsp
      </IfModule>

      到这里 apache 配置完毕!              

    四、tomcat配置由于比较简单,这里简略说明,如果是在一台机器上布置两个tomcat,需要修改四个端口、目的是为了避免端口冲突!tomcat启动报错.

    1. server.port   端口自己定义吧     只要不冲突就可以!
    2. connector.port    connector.redirectport  注:connector有两个,一个使用http协议,一个使用ajp协议,这里我们使用的是ajp协议 所以 把ajp协议的更改、当然我们也可以使用http协议做apache与tomcat连接、方法一样!
    3. 配置engine 这里主要是给tomcat一个标识,用来让apache区分!和前面apache httpd.conf中的blacermember 配置对应!如下:                                             
       <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
    4. 配置cluster 启动tomcat  进入小猫页面、找到tomcat doc文档.里面有cluster的配置,说明及示例!如下                                                                                                                                          复制一份代码如下:                                                                                                                                                                                            
              
          
              <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
                       channelSendOptions="8">
      
                <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"
                              port="45564"
                              frequency="500"
                              dropTime="3000"/>
                  <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                            address="auto"
                            port="4000"
                            autoBind="100"
                            selectorTimeout="5000"
                            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"/>
                </Channel>
        
                <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
                       filter=""/>
                <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
      
                <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.JvmRouteSessionIDBinderListener"/>
                <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
              </Cluster>

      注:vlaue  标签   classname为jvmroutebindervalve 与 clusterlistener  classname 为jvmroutesessionidbinderlistener  是为粘性session准备的处理方式、因为我们并没有使用到,所以需要注释掉!                                                                                                   这里还要修改一下revicve.port 也是为了避免冲突!

    五、apache 与tomcat都布置完毕、可以自己写个小测试,测一下session是否达到要求!篇章短小,测试项目代码就不发布了,网上也有很多!

  • 相关阅读:
    169. Majority Element
    283. Move Zeroes
    1331. Rank Transform of an Array
    566. Reshape the Matrix
    985. Sum of Even Numbers After Queries
    1185. Day of the Week
    867. Transpose Matrix
    1217. Play with Chips
    766. Toeplitz Matrix
    1413. Minimum Value to Get Positive Step by Step Sum
  • 原文地址:https://www.cnblogs.com/vitre/p/5164162.html
Copyright © 2011-2022 走看看