问题描述
- tomcat+nginx+memcached+windows session不能共享
-
困扰我两天了。使用tomcat7+nginx,实现负载均衡,并且测试通过。
但是session不能够共享,项目登录之后,进行其他操作时候提示登录,说明nginx转发请求到其他tomcat时候,丢失了session。加入memcached,想要实现session共享。
按照网上的说明配置,启动,但是session并不能实现共享。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>
做过负载均衡的牛人,请帮我指点一下把。
解决方案
Nginx+Tomcat+Memcached集群Session共享(windows)
Windows系统中配置Nginx+Tomcat+Memcached集群和Session共享
memcached 共享tomcat的session
解决方案二:
你参考这个呢
解决方案三:
java.net.ConnectionException:connect refused: no further infomation. 错误就是还没有连接上,
时间: 2024-12-30 18:22:24