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