Nginx+Tomcat+Memcached实现session共享
往期博客链接:
Nginx安装
Nginx+Tomcat实现负载均衡
Memcached部分
安装memcached
yum -y install memcached
启动memcached
memcached -d -m 128 -u root -l 192.168.33.129 -p 11211 -c 256 -P /tmp/memcached.pid
#参数解释:
# -d:后台启动服务
# -m:缓存大小
# -p:端口
# -l:IP
# -P:服务器启动后的系统进程ID,存储的文件
# -u:服务器启动是以哪个用户名作为管理用户
查看memcached
memcached-tool 192.168.33.129:11211
Tomcat部分
将必要的jar包拷贝至Tomcat的lib目录下
在Tomcat访问页获取session
第一台服务器
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
node1 <br>
session <%=session.getId()%>
第二台服务器
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
node2 <br>
session <%=session.getId()%>
分别配置两台Tomcat的context.xml,加入如下代码
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.33.129:11211"
sticky="false"
lockingMode="auto"
sessionBackupAsync="false"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
sessionBackupTimeout="1000" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/>
启动Tomcat,并访问Nginx,可以发现node1和node2的session同步了。