ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Nginx和Tomcat的session处理分为两步 2

Nginx和Tomcat的session处理分为两步 2

原创 Linux操作系统 作者:nginx_web 时间:2012-06-25 13:44:45 0 删除 编辑

 

 

 

第二步,解决Tomcat集群和Memcached存储会话

 

这一步又分为两步来完成:一是要解决Tomcat集群,二是要解决Memcached存储会话。

 

第一步、解决Tomcat集群

 

    在这个案例中我们配置了两台Tomcat服务器,在两台不同的物理服务器上,它们的IP分别为192.168.3.139192.168.3.140

 

IP 192.168.3.139 的机器上添加如下配置:

 

    将以下内容添加在$CATALINA_HOME/server.xml中。

 

 

                 channelSendOptions="8">

 

         

                   expireSessionsOnShutdown="false"

                   notifyListenersOnReplication="true"/>

 

         

           

                        address="224.0.0.4"

                        port="45564"

                        frequency="500"

                        dropTime="3000"/>

           

                      address="192.168.3.139"

                      port="4000"

                      autoBind="100"

                      selectorTimeout="5000"

                      maxThreads="6"/>

 

           

             

           

           

           

         

 

         

                 filter=""/>

         

 

         

                    tempDir="/tmp/war-temp/"

                    deployDir="/tmp/war-deploy/"

                    watchDir="/tmp/war-listen/"

                    watchEnabled="false"/>

 

         

         

       

   

 注意将以上的配置添加在原配置文件中:

 

      <!--

     

      -->

   

 的下面即可。

 

    另外还需要执行以下四条命令:

 

[root@mail tomcat]#mkdir  /tmp/war-temp/

[root@mail tomcat]#mkdir  /tmp/war-deploy/

[root@mail tomcat]#mkdir  /tmp/war-listen/

   

这三条命令没什么可解释的,这是上面配置中的需要。

 

[root@mail tomcat]# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

   

这条命令的功能在于添加多播路由,对于是不是eth0设备要根据具体的情况设定。

 

IP 192.168.3.140 的机器上添加如下配置:

 

    将以下内容添加在$CATALINA_HOME/server.xml中。

 

 

                 channelSendOptions="8">

 

         

                   expireSessionsOnShutdown="false"

                   notifyListenersOnReplication="true"/>

 

         

           

                        address="224.0.0.4"

                        port="45564"

                        frequency="500"

                        dropTime="3000"/>

           

                      address="192.168.3.140"

                      port="4000"

                      autoBind="100"

                      selectorTimeout="5000"

                      maxThreads="6"/>

 

           

             

           

           

           

         

 

         

                 filter=""/>

         

 

         

                    tempDir="/tmp/war-temp/"

                    deployDir="/tmp/war-deploy/"

                    watchDir="/tmp/war-listen/"

                    watchEnabled="false"/>

 

         

         

       

   

同样,注意将以上的配置添加在原配置文件中:

 

      <!--

     

      -->

   

的下面即可。

 

    另外还需要执行以下四条命令:

 

[root@mail tomcat]#mkdir  /tmp/war-temp/

[root@mail tomcat]#mkdir /tmp/war-deploy/

[root@mail tomcat]#mkdir /tmp/war-listen/

   

这三条命令没什么可解释的,这是上面配置中的需要。

 

[root@mail tomcat]# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

   

这条命令的功能在于添加多播路由,对于是不是eth0设备要根据具体的情况设定。

 

第二步、解决Memcached存储会话

 

    由于我们使用了Memcached,因此需要下载它的客户端java包,如果你能够自己写,那么也可以自己去写,不过这种活我们做运维的多数是干不了,干不了就使用开源的吧,google的开源替我们做了,需要我们做的就是下载了。

 

下载下面的jar包,并且将其放置在$CATALINA_HOME/lib目录下,在两台装有Tomcat的机器上做同样的操作,就是说在两个Tomcat服务器的$CATALINA_HOME/lib目录下都添加以下jar包。

 

[root@mail lib]#wget http://memcached-session-manager.googlecode.com/ \

> files/memcached-session-manager-tc7-1.4.1.jar

[root@mail lib]wget  http://memcached-session-manager.googlecode.com/ \

> files/msm-javolution-serializer-jodatime-1.3.0.jar

[root@mail lib] wget http://memcached-session-manager.googlecode.com/ \

> files/msm-javolution-serializer-cglib-1.3.0.jar

[root@mail lib]wget http://memcached-session-manager.googlecode.com/ \

> files/minlog-1.2.jar

[root@mail lib]wget http://memcached-session-manager.googlecode.com/ \

> files/msm-kryo-serializer-1.4.0.jar

[root@mail lib]wget http://memcached-session-manager.googlecode.com/ \

> files/kryo-1.03.jar

[root@mail lib]wget http://memcached-session-manager.googlecode.com/ \

> files/reflectasm-0.9.jar

[root@mail lib]wget http://cloud.github.com/downloads/magro/ \

> kryo-serializers/kryo-serializers-0.8.jar

[root@mail lib]wget http://mirrors.ibiblio.org/pub/mirrors/ \

> maven2/asm/asm/3.2/asm-3.2.jar

[root@mail lib]wget http://spymemcached.googlecode.com/ \

> files/memcached-2.5.jar

 

   

    然后再在$CATALINA_HOME/context.xml添加配置内容,两台Tomcat$CATALINA_HOME/context.xml文件中都添加。

 

192.168.3.139的机器上添加:

 

    memcachedNodes="n1:192.168.3.139:11211 n2:192.168.3.140:11211"

     failoverNodes="n1"

    requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$"

transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"

 />

   

将以上的内容放置在原文件元素之内。

 

192.168.3.140的机器上添加

 

    memcachedNodes="n1:192.168.3.139:11211 n2:192.168.3.140:11211"

     failoverNodes="n2"

    requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$"

transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"

 />

   

同样添加在原文件元素之内。

 

    好了,现在所有的配置都完成了。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27043155/viewspace-733714/,如需转载,请注明出处,否则将追究法律责任。

下一篇: Nginx 重写URI
请登录后发表评论 登录
全部评论

注册时间:2012-06-06

  • 博文量
    52
  • 访问量
    417987