Nginx+memcached+tomcat7+session

Nginx+memcached+tomcat7+session

前言

最近在学习nginx+tomcat配置,随着不断深入,很快就遇到瓶颈,tomcat集群之后session就不能共享,话说这个也不难,但是之前没有做过这方面的配置,

随后在就网上查资料,主要配置session共享有两种

1memcached (今天讲得重点)

2ngx_upstream_jvm_route

第二种偶试过 可是再安装时,编译老报错,对C语言的不了解, 无奈之下只好放弃。

今天重点讲 nginx+memcached+tomcat7+session 配置

有关这个资料网上已经翻天了,但是偶在配置总是出错,之前可能是自己没有理解,后来清楚之后,主要问题在jar上。

由于官方说的不是很清楚,导致折腾了很久,最终还是成功了。欣喜万分,特来跟大家分享下,说的不好的地方,还希望大家多多指教!

1.安装

首先下载必须得软件 如图

这里主要讲memcached

先下载libevent-1.4.14b-stable.tar.gz和memcached-1.4.7.tar.gz的源码包,前者是后者的依赖包,就是一个事件驱动的包。

  2)编译安装命令:

1.  tar zxvf libevent-1.4.14b-stable.tar.gz 

2.  cd libevent-1.4.14b-stable 

3.  ./configure --prefix=/usr/local/libevent-1.4.14b 

4.  make 

5.  make install 

6.   

7.  tar zxvf memcached-1.4.7.tar.gz 

8.  cd memcached-1.4.7 

9.  ./configure --prefix=/usr/local/memcached-1.4.7 --with-libevent=/usr/local/libevent-1.4.14b/ 

10. make 

11. make install 

启动memcached:

./bin/memcached -d -m 256 -u root -p 11211 -c 1024 -P /tmp/memcached.pid –vv

 

 

2.memcached-session-manager配置

 

让tomcat调用memcached来存储session早就是一个很成熟的解决方案了,开源的msm就可以解决这个问题。比较折腾的就是要用到的jar包,官方文档说的也比较含糊,我这里用的是kryo的序列化方案,所以用到的包多一些,分别是

Nginx+memcached+tomcat7+session_第1张图片

以上这些包都放在$CATALINA_HOME/lib目录下。

接下来是修改tomcat的配置文件$CATALINA_HOME/conf/context.xml,调整成新的session存储方式。配置文件中加入以下内容:

1.  <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" 

2.        memcachedNodes="n1:127.0.0.1:11211" 

3.        sticky="false" 

4.        lockingMode="auto" 

5.        sessionBackupAsync="false"   

6.        sessionBackupTimeout="1000"  

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

8.        /> 

 在$CATALINA_HOME/conf/logging.properties文件中添加de.javakaffee.web.msm.level=FINE,就可以在catalina.out的日志中看到详细的session存取情况。

 修改$CATALINA_HOME/conf/server.xml,多个tomcat更改端口不要一样,确保端口的唯一,否则启动会报错,导致启动不了

然后启动各个服务 如图

 

页面有变化,但是sessionID没变 说明成功了!

如果大家还有不明白的地方 可以联系偶!

未完待续……


你可能感兴趣的:(Nginx+memcached+tomcat7+session)