Nginx+tomcat7+memcached的session共享問題
来源:互联网 发布:保定网络舆情日报 编辑:程序博客网 时间:2024/06/05 14:07
基於上一篇負載均衡
下面我们就来解决session的问题了
这里需要将以下jar包放到tomcat的lib文件里面
注意tomcat7的jar包的memcached-session-manager-tc7-1.jar
jar包已上传,下载地址:http://files.cnblogs.com/mouseIT/nginx%2Cmemcached%EF%BC%8Ctomcat%E9%9B%86%E7%BE%A4%E7%9A%84jar%E5%8C%85.rar
然后在tomcat的context.xml中添加以下数据:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:127.0.0.1:11211" sticky="false" sessionBackupAsync="false" lockingMode="auto" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory" />
如下:
为了实现session共享,这里我们还需要使用的memcached。
将下下来的memcached直接解压,memcached.exe -d install 安裝 然後看是否啓動
为了测试,我们建一个web项目,记得要在web.xml的web-app中添加<distributable/> 这样服务器才知道这是分布式的。
同时我们建立默认的登陆页面,内容如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ page import="java.util.*" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>this is tomcat oneServer Info:<%String path = request.getContextPath();out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%><% out.println("<br> ID " + session.getId()+"<br>"); // 如果有新的 Session 属性设置 String dataName = request.getParameter("dataName"); if (dataName != null && dataName.length() > 0) { String dataValue = request.getParameter("dataValue"); session.setAttribute(dataName, dataValue); } out.println("<b>Session 列表</b><br>"); System.out.println("============================"); Enumeration e = session.getAttributeNames(); while (e.hasMoreElements()) { String name = (String)e.nextElement(); String value = session.getAttribute(name).toString(); out.println( name + " = " + value+"<br>"); System.out.println( name + " = " + value); }%> <form action="<%=path%>/login.jsp" method="POST"> 名称:<input type="text" size=20 name="dataName"> <br> 值:<input type="text" size=20 name="dataValue"> <br> <input type="submit"> </form></body></html>
这个是在网上收的,具体的原理我就不再阐述了。
然后我们依次启动memcached->tomcat->nginx。注意一定要最先启动memcached,不然启动tomcat时会出错。
然后我们访问127.0.0.1/tomcat下的web项目名
进入主页面后,我们输入名称和值,然后点击提交(这时注意tomcat的窗口),我输入的是abc,123,点击提交后,tomcat1出现如下:
然后我们刷新浏览器,观察tomcat2的窗口,也会出现上面的数据:
这就表示tomcat2获得了session的数据,tomcat1,tomcat2实现了session共享。
今天总结的这些只是一个简单的应用,还有很多的细节没有说。这些也是我才学会的。以后还有什么好的东西会继续和大家分享,大家共同探讨!
- Nginx+tomcat7+memcached的session共享問題
- NGINX + TOMCAT7 + MEMCACHED 实现SESSION 共享
- NGINX + TOMCAT7 + MEMCACHED 实现SESSION 共享
- NGINX + TOMCAT7 + MEMCACHED 实现SESSION 共享
- tomcat7+nginx+memcached实现负载均衡和session共享
- Nginx+Tomcat7(tomcat6)+Memcached集群Session共享
- nginx+tomcat7+memcached服务架构实现session共享
- 【 Nginx+Apache-Tomcat7+Memcached搭建负载均衡实现Session共享】
- tomcat7+nginx+memcached实现负载均衡和session共享(windows)
- nginx+tomcat7+memcache集群,使用memcached-session-manager实现session共享方案
- Nginx-1.6.2+Memcached-1.2.6+Tomcat7负载均衡实现Session共享
- nginx+tomcat+memcached session共享
- nginx+tomcat+memcached session共享
- tomcat7 + redis + nginx 实现session共享
- nginx+redis+tomcat7集群session共享
- Nginx+Tomcat7+redis实现session共享
- Nginx + Memcached 实现Session共享的负载均衡
- Nginx + Memcached 实现Session共享的负载均衡
- 【JVM】类加载
- Spark中的python shell交互界面Ipython和jupyter notebook
- super、this(转载)
- 排序问题总结
- 集训D3T3
- Nginx+tomcat7+memcached的session共享問題
- 自定义生成静态页面练习
- 在U盘上运行的 Windows、windows to go、WTG辅助工具 v4.6
- 114. Flatten Binary Tree to Linked List
- 域名过期提前预警脚本
- bzoj4917: Hash Killer IV
- 英语博客
- 多线程run和start的区别
- Java注解解析 整理