nginx+tomcat7+session复制 负载均衡

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/PYXLY1314/article/details/50732374

nginx+tomcat7+session复制 负载均衡

1、安装nginx

      去官网下载nginx 本文是下载的windows版本的


2、nginx配置反向代理、并且配置均衡策略

        upstream loadtest {                  # 负载均衡站点的名称为tomcat,可以自己取
        #ip_hash;                            # 可选,根据来源IP方式选择web服务器,省略的话按默认的轮循方式选择web服务器
        server 127.0.0.1:8080;               # web服务器的IP地址及tomcat发布端口
        server 127.0.0.1:9090;   
        server 127.0.0.1:8088;
       }
    server {
        listen       80;
        server_name  localhost;


        #charset koi8-r;


        #access_log  logs/host.access.log  main;


        location / {
            #root   html;
            #index  index.html index.htm;
   proxy_connect_timeout   3;  
   proxy_send_timeout      30;  
   proxy_read_timeout      30;  
            proxy_pass http://loadtest; # 负载均衡指向的发布服务tomcat
        }

3、修改tomcat的server.xml

      
  • web1服务器tomcat1:vi tomcat1/conf/server.xml(修改如下四个地方:)
    1
    2
    3
    4
    5
    < Server port = "8005" shutdown = "SHUTDOWN" >         <!--'8005'改为'8001'端口-->
         < Connector port = "8080" protocol = "HTTP/1.1" <!--'8080'发布端口改为'81'端口-->
         < Connector port = "8009" protocol = "AJP/1.3" redirectPort = "8443" /> <!--改为'8011'端口-->
         <!--Engine name="Catalina" defaultHost="localhost"-->
         < Engine name = "Catalina" defaultHost = "localhost" jvmRoute = "tomcat1" >
  • web1服务器tomcat2:port:8002, http:82, ajp:8012, jvmRote:tomcat2
  • web1服务器tomcat3:port:8003, http:83, ajp:8013, jvmRote:tomcat3
  • web1服务器tomcat4:port:8004, http:84, ajp:8014, jvmRote:tomcat4

4、配置tomcat的session复制
     1.修改tomcat的sever.xml
      <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2" >
    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8">
      <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="10.10.12.11"
                  port="5002"
                  selectorTimeout="100" />
        <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;"/>
      <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>

 2.修改tomcat的 web.xml  

     <distributable />   <!--在倒数第二行增加这个代码才能实现session同步复制功能-->
 
 5、修改被部署的项目工程的  D:\LoadBalance\tomcat7-1\webapps\ABCTool\WEB-INF 目录下 web.xml文件
      也要新增节点(不然session无法完成复制)
     <distributable/>  

猜你喜欢

转载自blog.csdn.net/PYXLY1314/article/details/50732374