Fry_boy 2016-01-12 06:14 采纳率: 0%
浏览 1889

tomcat+nginx+memcached+windows session不能共享

困扰我两天了。

使用tomcat7+nginx,实现负载均衡,并且测试通过。
但是session不能够共享,项目登录之后,进行其他操作时候提示登录,说明nginx转发请求到其他tomcat时候,丢失了session。

加入memcached,想要实现session共享。
按照网上的说明配置,启动,但是session并不能实现共享。

下载的jar,拷贝到tomcat/lib下面。
图片说明

memcached下载,安装,启动,tomcat1和tomcat2启动都正常,始终没有报错,但是session就是不能共享。

tomcat/config/context.xml配置如下(tomcat1和tomcat2都相同)

 <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" 
        memcachedNodes="n1:127.0.0.1:11211" 
        sticky="false" 
        lockingMode="auto" 
        sessionBackupAsync="false"   
        sessionBackupTimeout="1000"  
        transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" 
        />

在项目中新建demo.jsp,观察session变化(也是网上的例子)

 <%@ page contentType="text/html;charset=UTF-8" %>   
<%@ page import="java.util.*" %>   
<html><head><title>Cluster Test</title></head>   
<body>   
<%   
  //HttpSession session=request.getSession(true);   
  System.out.println(session.getId());   
  out.println("port:" + request.getLocalPort()  );  
  out.println("<br>SESSION ID:" + session.getId()+"<br>");     
  // 如果有新的请求,则添加session属性   
  String name=request.getParameter("name");   
  if (name != null &&name.length() >0) {   
     String value=request.getParameter("value");   
     session.setAttribute(name, value);   
 }     
    out.print("<b>Session List:</b>");     
    Enumeration<String>names=session.getAttributeNames();   
    while (names.hasMoreElements()) {   
        String sname=names.nextElement();    
        String value=session.getAttribute(sname).toString();   
        out.println( sname + "=" + value+"<br>");   
        System.out.println( sname + "=" + value);   
  }


%>   
</body>   
</html>

测试结果
图片说明
图片说明

做过负载均衡的牛人,请帮我指点一下把。

  • 写回答

2条回答

  • tony4geek 2016-01-12 09:09
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 Stata 面板数据模型选择
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用