Nginx+memcached+tomcat7+session

Nginx+memcached+tomcat7+session

前言

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

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

1memcached (今天讲得重点)web

2ngx_upstream_jvm_routetomcat

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

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

有关这个资料网上已经翻天了,可是偶在配置老是出错,以前多是本身没有理解,后来清楚以后,主要问题在jar上。memcached

因为官方说的不是很清楚,致使折腾了好久,最终仍是成功了。欣喜万分,特来跟你们分享下,说的很差的地方,还但愿你们多多指教!学习

1.安装

首先下载必须得软件 如图spa

这里主要讲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的序列化方案,因此用到的包多一些,分别是

以上这些包都放在$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没变 说明成功了!

若是你们还有不明白的地方 能够联系偶!

未完待续……

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息