nginx tomcat 组播 session共享

冰水凝霜 发布于 2017/07/11 19:48
阅读 228
收藏 0

@CapJes 你好,想跟你请教个问题:

这是我的tomcat的server.xml

<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="192.168.1.136"
                      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.ClusterSessionListener"/>
        </Cluster>

我有三台tomcat 每个配置都不一样

 

nginx.conf 配置如下

#负载均衡
upstream tomcatCluster {
          ip_hash;
          server localhost:8080 weight=1;
          server localhost:8081 weight=2;
          server localhost:8082 weight=3;
        }
server
    {
        listen 80 default_server;
        #listen [::]:80 default_server ipv6only=on;
        server_name 192.168.1.136;
        index index.html index.htm index.php;
        root  /home/wwwroot/default;

        #error_page   404   /404.html;
        include enable-php.conf;

        location /nginx_status
        {
            stub_status on;
            access_log   off;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }
        location /api
        {
            proxy_pass http://tomcatCluster/loveoffice/api/;
            proxy_redirect          off; 
            proxy_set_header Host $host:$server_port;  
            proxy_set_header X-Real-IP $remote_addr;  
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
            proxy_connect_timeout       1;  
            proxy_read_timeout          1;  
            proxy_send_timeout          1;   
        }
        location / 
        {
            if (!-e $request_filename) {
                    rewrite ^(.*)$ /index.php?s=$1  last;
                break;
            }
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /home/wwwlogs/access.log;
    }

我前后端分离能访问得到api那个 

但是session失效

加载中
返回顶部
顶部