原料:jdk1.8,tomcat7,nginx1.16,memcached-1.2.6,Mem-Tomcat需要的jar包,基于windows7。所有的点击以下链接可下载

链接:https://pan.baidu.com/s/1jeO3T4ubJiz-G9TtyIOoCQ     提取码:4ckm 

nginx安装参考上一篇文章:https://www.cnblogs.com/bigdatadiary/p/10951313.html

  1.安装jdk1.8,配置环境变量

  2.解压Tomcat7(两份),分别命名为tomcat0,tomcat1,并修改端口保证两个Tomcat能正常运行

  3.安装memcached(以下简称mem),其1.4版本以下都是以服务安装,可以在系统服务中查看运行状况,安装步骤如下:

    (1):解压mem,得到一个memcached.exe文件

    (2):cmd,进入memcached.exe目录下,执行 memcached.exe -d install,安装成功是没有任何提示的。memcached.exe -d start/stop 分别为mem的服务启动和停止命令,memcached.exe -h 命令查看mem更多命令以及说明,mem使用11211端口,默认换成为512M

    (3):启动mem。

  4.配置Tomcat,将以下代码复制到两个tomcat\conf\context.xml中

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:localhost:11211"
sticky="false"
sessionBackupAsync="false"
sessionBackupTimeout="1000"
lockingMode="auto"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>

*以上配置详解

memcachedNodes

必须项

配置 memcached 节点。格式:<id>:<host>:<port>,多个节点之间,用空格或英文逗号分隔

sticky

可选项

是否粘性。默认为 true。粘性会话需要保证每个用户的请求都路由到同一台 Tomcat 服务器中。否则,需要设置成非粘性会话。

lockingMode

可选项

用于非粘性会话。默认为 none。

可选值

描述

none

不锁定 session

all

每个请求访问 session 的期间,session 一直被锁定,直到请求结束

auto

只锁定写请求的 session,只读请求的 session 不会被锁定

uriPattern:<regexp>

通过正则表达式的方式来对请求的 URI 进行匹配,匹配上的会被锁定

sessionBackupAsync

可选项

设置 session 会话中的数据是否异步同步到 memcached 中,默认为 true。

requestUriIgnorePattern

可选项

设置忽略会话同步的请求的 URI 地址的正则表达式。这应该包含静态资源的请求。

failoverNodes

可选项

memcached 故障转移节点配置。用于粘性会话,非粘性会话不可用。如:

failoverNodes="n1",含义是告诉 msm 将 session 会话中的数据存储到 memcached 的 n2 节点中,如果 n2 节点宕掉等致使其不能正常提供服务,msm 才会将 session 会话中的数据存储到 memcached 的 n1 节点中。

sessionAttributeFilter

可选项

配置同步 session 会话数据的属性名称的正则表达式。如果不设置,则将 session 中全部的属性保存到 memcached 中。

transcoderFactoryClass

可选项

配置序列化和反序列化 session 会话中的数据到 memcached 中的编码转换器的工厂类名。

默认是 de.javakaffee.web.msm.JavaSerializationTranscoderFactory

backupThreadCount

可选项

用于异步存储 session 会话中的数据到 memcached 中的线程数。(当 sessionBackupAsync="true" 时,该配置项有效)

sessionBackupTimeout

可选项

备份 session 会话数据所需时间如果大于该值,将导致 session 会话数据同步失败。默认为 100(单位毫秒)

  (5)将 Mem-Tomcat需要的jar包 放进Tomcat的lib目录下,然后新建一个ROOT文件夹,在里面建一个index.jsp文件,index.jsp文件写入以下代码,保存后点击bin/startup.bat运行tomcat,即可看到session共享成功

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Session test</title>
</head>
<body>

Tomcat 0
<p>SessionID:<%=session.getId()%></p>
</body>
</html>

    

  

  

基于Memcached的Nginx服务器集群session共享的更多相关文章

  1. 基于Redis的Nginx服务器集群session共享

    原料:jdk1.8,tomcat7,nginx1.16,Redis3.2.100,Redis-Tomcat需要的jar包,基于windows7. Redis3.2.100与Redis-Tomcat需要 ...

  2. Nginx+Tomcat集群+session共享

    Nginx+Tomcat集群+session共享 1)安装Nginx 2)配置多个Tomcat,在server.xml中修改端口(端口不出现冲突即可) 3)在nginx.conf文件中配置负载均衡池, ...

  3. 160513、nginx+tomcat集群+session共享(linux)

    第一步:linux中多个tomcat安装和jdk安装(略) 第二步:nginx安装,linux中安装nginx和windows上有点不同也容易出错,需要编译,这里做介绍 一.安装依赖 gcc open ...

  4. nginx+tomcat+redis的集群+session共享

    nginx+tomcat+redis的集群+session共享 环境准备 1.tomcat版本:tomcat7 tomcat下载及安装,目前很多好的资源和步骤,此处省略. 2.jdk版本:jdk1.7 ...

  5. Shiro+Redis实现tomcat集群session共享

      一.背景 当我们使用了nginx做项目集群以后,就会出现一个很严重的问题亟待解决,那就是:tomcat集群之间如何实现session共享的问题,如果这个问题不解决,就会出现登陆过后再次请求资源依旧 ...

  6. session服务器Nginx+Tomcat+Memcached集群Session共享

    cookie是怎样工作的? 例如,我们创立了一个名字为login的Cookie来包含访问者的信息,创立Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名是“Michael Jor ...

  7. 【转】Nginx+Tomcat+Memcached集群Session共享

    cookie是怎样工作的? 例 如,我们创建了一个名字为login的Cookie来包含访问者的信息,创建Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名 是“Michael J ...

  8. redis实现tomcat集群session共享

    1.部署两个tomcat节点,使用nginx实现集群(见http://www.cnblogs.com/zhangzhi0556/articles/nginx.html):   2.redis安装(见h ...

  9. 基于Memcached的tomcat集群session共享所用的jar

    多个tomcat各种序列化策略配置如下:一.java默认序列化tomcat配置conf/context.xml添加<Manager className="de.javakaffee.w ...

随机推荐

  1. 前端js传值JSON.stringify(obj)

    用bootstrap-talbe前端传值 首先直接传肯定是不行的; 其次做一个全局变量也不行,因为这里的问题的是用bootstrap-table进行生成的操作HTML,从这里datass = row ...

  2. 深入理解TCP建立和关闭连接

    建立连接: 理解:窗口和滑动窗口TCP的流量控制TCP使用窗口机制进行流量控制什么是窗口?连接建立时,各端分配一块缓冲区用来存储接收的数据,并将缓冲区的尺寸发送给另一端 接收方发送的确认信息中包含了自 ...

  3. jdk 的 安装以及环境变量配置

    第一步:下载jdk 下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html 第二步:安装jdk 第三步:配置环 ...

  4. Vue-cli3.0下的雪碧图插件webpack-spritesmith配置方法

    在前端项目中,为了减少对图片的请求次数,一般而言需要进行雪碧图的配置.即将多张小图标合并成一张图片,这样页面中的小图标都在一张图片上,只需请求一张图片,就可以通过CSS设置各个小图标的显示,利于节省带 ...

  5. Vue学习—— Vuex学习笔记

    组件是Vue最强大的功能之一,而组件实例的作用域是相互独立的,意味着不同组件之间的数据是无法相互使用.组件间如何传递数据就显得至关重要,这篇文章主要是介绍Vuex.尽量以通俗易懂的实例讲述这其中的差别 ...

  6. Redis(一):数据结构与对象

    前言 本书是Redis设计与实现的读书笔记,旨在对Redis底层的数据结构及实现有一定了解.本书所有的代码基于Redis 3.0. 简单动态字符串 SDS Redis没有直接使用C语言中的字符串,而是 ...

  7. APP路由还能这样玩

    本文主要讲述一种设计思路,组件化架构市面上已经有很多大厂成熟的方案,但是在组件化过程中,偶尔会遇到2个独立业务子模块间没有相互引用,也需要能直接调用对方的功能,因此我想到通过方法路由来解决,如果还有疑 ...

  8. Java ArrayList工作原理及实现

    http://yikun.github.io/2015/04/04/Java-ArrayList%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86%E5%8F%8A%E5%AE% ...

  9. 啃算法:归并排序及JavaScript实现

    在学习归并排序之前,有必要了解分治法,因为归并排序正是应用了分治模式.(基本定义摘自<算法导论>) 一.分治法 1.思想: 将原问题分解为几个规模较小但类似于原问题的子问题,递归地求解这些 ...

  10. Codeforce1311B. WeirdSort (冒泡排序)

    You are given an array a of length n. You are also given a set of distinct positions p1,p2,-,pm, whe ...