tomcat8+MSM+nginx+session共享
前几节,我们说到tomcat6、7+nginx使用memcached-session-manager实现session共享,但是说在tomcat8下还存在一点点问题,由于已经更新到最近的版本,今天就以tomcat8做一个说明,如果需要看回之前的知识,欢迎订阅我的头条号:一点热。
快速入口:
这里以memcached-session-manager1.9.5版本为例
知识准备:
掌握memcached的基本知识,可以自行安装memcached,Nginx安装与负载均衡的配置,在tomcat配置memcached-session-manager。
1、安装memcached
我这里以手动安装为例:
下载依赖库libevent
wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
编译与安装libevent
tar zxvf libevent-2.0.22-stable.tar.gzcd libevent-2.0.22-stable/./configure --prefix=/usr/libeventmake & make install
下载Memcached
wget http://www.memcached.org/files/memcached-1.4.26.tar.gz
编译与安装memcached
tar zxvf memcached-1.4.26.tar.gzcdmemcached-1.4.26/./configure --prefix=/usr/memcached --with-libevent=/usr/libevent/make &make install
2、启动memcached
memcached -d -m 256 -u root -p 11211 -c 1024 –P /tmp/memcached.pid
3、JDK与tomcat的安装
这里就不再详细介绍了
4、下载memcached-session-manager所需的文件
注意,我这里是以tomcat8为例子,如果其他版本,请下载对应版本的
memcached-session-manager-tc{版本}-1.9.5.jar
memcached-session-manager-1.9.5.jar
memcached-session-manager-tc8-1.9.5.jar
spymemcached-2.11.1.jar
5、把上面三个文件复制到tomcat8的lib下
如图
6、下载序列化的包
我这里使用kryo-serializer的方法,它需要用到几个包
对于下载的方法
比较简单的方法是使用maven,当然也可以使用gradle,这里有些人说不知道怎么创建,大家可以说使用myeclipse或者intelliJ idea,这些工具可以很容易创建的,创建好后可以运行到tomcat,然后在里面找到lib,当然你也可以到我的github下载:
https://github.com/yeehot/tomcat8-session-msm
maven的下载方法如下
<dependency>
<groupId>de.javakaffee.msm</groupId>
<artifactId>msm-kryo-serializer</artifactId>
<version>1.9.5</version>
<scope>runtime</scope>
</dependency>
7、复制上面的几个包到tomcat8的lib下
8、配置tomcat8的conf的context.xml
<Context>
...
<Manager pathname="" />
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.3.4:11211,n2:192.168.3.5:11211"
failoverNodes="n1"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
...
</Context>
注意:
n1:代表VM1服务器的地址
n2:代表VM2服务器的地址
9、nginx安装
这里大家可以看回之前的文章
10、nginx配置
upstream commentserver{
server 192.168.3.4:8080 weight=1;
server 192.168.3.5:8080 weight=1;
}
location /YeehotMSM/{
proxy_pass http://commentserver;
}
11、测试负载均衡
http://192.168.3.5/YeehotMSM/
可以看到上面两个session ID的值是没有变化,这说明我们的session共享成功了。
下一节,我会讲解couchbase+tomcat实现session共享。
欢迎大家收藏与转发,如果转载到其它网站,请与我联系。