最近在学习nginx+tomcat配置,随着不断深刻,很快就遇到瓶颈,tomcat集群以后session就不能共享,话说这个也不难,可是以前没有作过这方面的配置,java
随后在就网上查资料,主要配置session共享有两种nginx
1:memcached (今天讲得重点)web
2:ngx_upstream_jvm_routetomcat
第二种偶试过 但是再安装时,编译老报错,对C语言的不了解, 无奈之下只好放弃。session
今天重点讲 nginx+memcached+tomcat7+session 配置jvm
有关这个资料网上已经翻天了,可是偶在配置老是出错,以前多是本身没有理解,后来清楚以后,主要问题在jar上。memcached
因为官方说的不是很清楚,致使折腾了好久,最终仍是成功了。欣喜万分,特来跟你们分享下,说的很差的地方,还但愿你们多多指教!学习
首先下载必须得软件 如图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
让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没变 说明成功了!
若是你们还有不明白的地方 能够联系偶!
未完待续……