Nginx+Tomcat+Memcached集群Session共享 转

环境: windows 7 + nginx-1.1.5 + memcached-1.2.6-win32-bin + apache-tomcat-7.0.20-windows-x86 + jdk-6u6-windows-i586-p(JDK 1.6memcached-1.2.6-win32-bin 下载地址: http://code.jellycan.com/files/memcached-1.2.6-win32-bin.zip

需要用到的 jar 包:

memcached-2.6.jar http://spymemcached.googlecode.com/files/memcached-2.6.jar

javolution-5.4.3.1.jar

memcached-session-manager-1.5.1.jar

memcached-session-manager-tc7-1.5.1.jar

msm-javolution-serializer-1.5.1.jar

msm-kryo-serializer-1.5.1.jar

msm-xstream-serializer-1.5.1.jar

以上 jar 包在 http://code.google.com/p/memcached-session-manager/downloads/list 中都可以找到。

 

安装 Memcached

解压缩 memcached-1.2.6-win32-bin.zip ,打开 cmd ,进入 memcached-1.2.6-win32-bin 目录,运行“ memcached.exe –d install ”安装 memcachedwindows 服务。

 

         安装 niginx

<<Windows 下实现 Nginx+Tomcat 集群部署方案 >> 是一样的。

 

安装 Tomcat

网上很多资料都是基于 Tomcat6 的,如果使用 Tomcat7 需要用到 memcached-session-manager-tc7-1.5.1.jar ,把上面说到的 jar 包放在 Tomcat7lib 目录下。

         我在测试的时候,设置了两个节点,也就是有两个 Tomcat ,他们主要的区别在于端口不同 ,因为我是在一台电脑上进行测试的。

1server.xml 修改

1<Server port="8005" shutdown="SHUTDOWN"> 两个 Tomcatport 分别为: 80058006

2<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 两个 Tomcatport 分别为: 80808081

3<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 两个 Tomcatport 分别为: 80099009

4<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat7-1" > 两个 TomcatjvmRoute 分别为: tomcat7-1tomcat7-2

2context.xml 修改

<Context> 标签内加入以下代码:

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

memcachedNodes="n1:localhost:11211"

requestUriIgnorePattern=".*/.(png|gif|jpg|css|js)$"

sessionBackupAsync="false"

sessionBackupTimeout="100"

transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"

copyCollectionsForSerialization="false"/>

测试

在两个 Tomcatwebapps 目录下创建 test 目录,在 test 目录下,创建 index.jsp 文件,文件内容如下:

 

<%@ page contentType="text/html; charset=GBK" %> 

 

<%@ page import="java.util.*" %> 

 

<html><head><title>Cluster Test</title></head> 

 

<body> 

 

<% 

 

  //HttpSession session = request.getSession(true); 

  System.out.println(session.getId());

  out.println("<br> SESSION ID:" + session.getId()+"<br>");

%>

 

</body> 

</html>

我们先启动 memcached ,打开 cmd ,进入 memcached-1.2.6-win32-bin 目录,运行“ memcached.exe –p 11211 –d start ”;然后启动 niginx 和两个 Tomcat

打开浏览器,输入 http://127.0.0.1/test ,我们会看到页面上显示以下内容:

SESSION ID:D91C4F897566168C82A92AF2A36E154B-n1.tomcat7-2

         D91C4F897566168C82A92AF2A36E154B ”为 SessionId ,“ n1 ”为 memcached 的节点名称,“ tomcat7-2 ”为目前所访问的 web 应用服务器的名称。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值