`
baobeituping
  • 浏览: 1062135 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

nginx+tomcat7+memcached做集群以及session复制

 
阅读更多

首先:配置tomcat集群 nginx+ tomcat7

1 安装jdk (可以选择6或者7都可以) 此处不用多说。

2 下载nginx-1.2.5 (下载附件)

3 下载 memcached(下载附件

4

(注意:nginx负载均衡不会有太大问题,但是,在用memcached配置session共享的时候,tomcat的版本可能成为关系到成败的关键,

目前选用的是tomcat apache-tomcat-7.0.12 版本 

 

5、首先用nginx来搭建三台tomcat服务器的负载均衡环境,如何在一台机器启动三个tomcat请参照我的另外一篇文章

  我的tomcat的端口分别是8181,8282,8383

  解压下载的nginx压缩包,我的路径是D:\tomcat7collection\myserver;

  在D:\tomcat7collection\myserver\nginx-1.2.6\conf 下找到 nginx.conf,该文件为nginx的请求分发配置文件,打开nginx.conf做如下修改:

    (1)在http {…} - server{…} - location / {…}中加入一行:“proxy_pass  http://127.0.0.1;”

    修改后如下:   

[html] view plaincopy

  1. location / {  

  2.            root   html;  

  3.            index  index.html index.htm;  

  4.            proxy_pass    http://127.0.0.1;  

  5.        }  

       (2)

http {…}中加入以下代码:

?

#设定负载均衡的服务器列表

[html] view plaincopy

  1. upstream 127.0.0.1 {  <span style="font-family: 'Courier New', Consolas, 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 24px; white-space: pre-wrap; background-color: rgb(248, 248, 248); ">#weigth参数表示权值,权值越高被分配到的几率越大</span>  

  2.                   server 127.0.0.1:8181 weight=1;  

  3.                   server 127.0.0.1:8282 weight=2;  

  4.                   server 127.0.0.1:8383 weight=3;  

  5.               }  

 

可以进行请求分发的简单测试,

  启动nginx,打开cmd,进入到 D:\tomcat7collection\myserver\nginx-1.2.6\ 路径下 输入nginx 敲回车,调度处任务管理器看到进程里面有nginx则表示启动成功

  启动三台tomcat

  用eclipse新建一个web项目cluster,该项目下新建一个cluster.jsp文件,编辑该文件内容如下:

 

[html] view plaincopy

  1. <%@ page contentType="text/html; charset=UTF-8" %>   

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

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

  4. <body>   

  5. <%   

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

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

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

  9.   // 如果有新的请求,则添加session属性   

  10.   String name = request.getParameter("name");   

  11.   if (name != null && name.length() > 0) {   

  12.      String value = request.getParameter("value");   

  13.      session.setAttribute(name, value);   

  14.   }     

  15.     out.print("<b>Session List:</b>");     

  16.     Enumeration<String> names = session.getAttributeNames();   

  17.     while (names.hasMoreElements()) {   

  18.         String sname = names.nextElement();    

  19.         String value = session.getAttribute(sname).toString();   

  20.         out.println( sname + " = " + value+"<br>");   

  21.         System.out.println( sname + " = " + value);   

  22.    }   

  23. %>   

  24. </body>   

  25. </html>  

修改tomcat\conf\server.xml 

?

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat7-1">

    对应的另外两台tomcat分别是 tomcat7-2 tomcat7-3

?

  将cluster项目打包成war包分别放到每个tomcat的webapps下

  在浏览器中输入localhost:8080/cluster/cluster.jsp 重复刷新可以看到输出的session值在变化说明分发处理成功

 

6 配置session 共享

将上面下载好的memcached的压缩包解压到 D:\tomcat7collection\memcached

使用的是memcached-session-manager-tc7-1.6.3 来进行,使用到的jar包如下:

 

jar包下载地址 

下载如下jar包,点击下载spymemcached-2.7.3.jar

其他jar包可以从如下链接找到:http://code.google.com/p/memcached-session-manager/downloads/list

如果大家懒得挨个去下,我提供了自己下载整理好的下载 tomcate session 共享所需jar包下载

 

 

好了,把上述jar包放到tomcat/lib 目录下,修改每个tomcat的配置文件tomcat\conf\context.xml

  在<context>...</context>标签之间加入如下代码:

?

[html] view plaincopy

  1. <Manager  

  2. className="de.javakaffee.web.msm.MemcachedBackupSessionManager"  

  3. memcachedNodes="n1:127.0.0.1:11211"  

  4. sticky="false"  

  5. sessionBackupAsync="false"  

  6. lockingMode="uriPattern:/path1|/path2"  

  7. requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"  

  8. transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/>  


关闭所有tomcat,打开cmd 进入memcached解压到的路径D:\tomcat7collection\memcached 输入:memcached.exe –d install 回车安装windows服务

输入:memcached.exe –p 11211 –d start 回车启动memcached服务,启动三个tomcat

在浏览器中输入localhost:8080/cluster/cluster.jsp  重复刷新发现session的值不变如下所示,session共享成功

SESSION ID:76AC7C56C4B278ADFDEC6EA782192D15-n1.tomcat7-1

分享到:
评论

相关推荐

    Nginx+Tomcat+Memcached实现tomcat集群和session共享 nginx配置

    Nginx+Tomcat+Memcached实现tomcat集群和session共享 nginx配置

    nginx+tomcat7+memcached session会话保持

    本文将详细介绍如何在Nginx、Tomcat7和Memcached的环境下实现会话保持,确保用户在多台服务器之间切换时仍能保持其会话状态。 首先,我们要理解会话保持的重要性。在分布式系统中,用户可能与集群中的任何一台...

    Nginx+Tomcat7+Memcached集群Session共享

    Nginx+Tomcat7+Memcached集群Session共享 完整例子 主要是利用memcached-session-manager(下面简称msm)开源tomcat插件改变tomcat原始的session存储机制,将session的存储放到分布式缓存memcache中,从而实现对...

    Nginx+Tomcat+Memcached实现tomcat集群和session共享 tomcat部分

    Nginx+Tomcat+Memcached实现tomcat集群和session共享 tomcat部分

    Nginx+Tomcat+Memcached共享session集群配置

    ### Nginx+Tomcat+Memcached 共享 Session 集群配置 #### 一、概述 在大型分布式系统中,为了实现高可用性和负载均衡,常常会使用 Nginx 作为反向代理服务器来分发请求到后端多个 Tomcat 实例上。然而,传统的基于...

    Nginx+Tomcat+Memcached集群Session共享实例

    Nginx+Tomcat+Memcached集群Session共享实例,Nginx 1.81 + tomcat1 + tomcat2 + Memcached 完整可运行 访问根目录下 test.jsp 可看效果

    Nginx+Tomcat+Memcached实现tomcat集群和session共享

    下面我们将详细探讨如何实现Nginx+Tomcat+Memcached的集群和Session共享。 **Nginx** Nginx是一款轻量级的Web服务器/反向代理服务器,以其高效的性能和低内存占用著称。在本场景中,Nginx主要负责以下任务: 1. **...

    Nginx+Tomcat+Memcached集群Session共享

    标题 "Nginx+Tomcat+Memcached集群Session共享" 描述了在分布式环境中如何通过Nginx反向代理服务器、Tomcat应用服务器集群以及Memcached缓存系统来实现Session的共享。这是一个常见的高可用性和负载均衡解决方案。...

    Windows + Nginx + Memcached + Tomcat 集群 session共享

    总之,Windows + Nginx + Memcached + Tomcat 集群session共享方案是一个高效且可靠的架构,它能提高系统的可用性,保证用户会话的连续性,是大规模Web应用常见的部署模式。然而,实际部署时,还需要考虑安全性、...

    Nginx+Tomcat+Memcached实现tomcat集群和session共享.docx

    总结,通过Nginx的反向代理和负载均衡功能,以及Memcached作为session共享的中间层,可以构建一个高效且可靠的Tomcat集群环境。这种方式不仅能提升服务的可用性和响应速度,还能确保用户在集群内的无缝切换,保持...

    Nginx+Tomcat+Memcached集群

    文件"**Nginx+Tomcat+Memcached集群Session共享(tomcat7)**"可能包含了这些配置示例和必要的依赖库,如Tomcat的Memcached Session Manager (messaging)相关的jar包。 6. **性能优化**:在实际运行中,还需要关注...

    Nginx+Tomcat+Memcached-Session-Manager集群Session共享

    通过本篇文档,读者应该能够获得构建基于Nginx+Tomcat+MSM的集群Session共享环境的知识,并能应用这些知识进行实际操作和测试。需要注意的是,在实际操作中,环境配置细节会根据具体需求和软件版本有所不同,因此在...

    nginx+tomcat+memcached负载均衡集群搭建许jar包大全

    2)Tomcat6和Tomcat7使用不同msm支持包:memcached-session-manager-tc6-1.6.5.jar和memcached-session-manager-tc7-1.6.5.jar,只可选一,否则启动报错。 3)msm源码中的lib包版本太低:spymemcached需要使用...

    Windows7 + Nginx + Memcached + Tomcat 集群 session 共享

    本主题将详细探讨如何在Windows7环境下,利用Nginx作为负载均衡器,Memcached作为session存储,以及Tomcat作为应用服务器,实现session共享。 **1. Nginx介绍与配置** Nginx是一款高性能的HTTP和反向代理服务器,它...

    Nginx+Tomcat+Memcached集群 所需jar包集合

    couchbase-client-1.2.2.jar ...memcached-session-manager-1.6.5.jar memcached-session-manager-tc6-1.6.5.jar minlog-1.2.jar msm-kryo-serializer-1.6.5.jar reflectasm-0.9.jar spymemcached-2.10.2.jar

    lvs+keepalived+nginx+tomcat+memcached实现服务负载均衡及session共享

    本文将详细探讨如何使用lvs(Linux Virtual Server)、keepalived、nginx、tomcat以及memcached来实现这一目标。 首先,lvs是Linux内核中的一个模块,它提供了四层负载均衡功能,能够将进来的网络请求分发到后端多...

    Nginx+Tomcat+memcached实现集群部署、负载均衡session共享.rar

    在IT行业中,构建高效、可扩展的Web服务是至关重要的,而"Nginx+Tomcat+memcached实现集群部署、负载均衡session共享"是一种常见的解决方案。这个方案结合了Nginx作为反向代理和负载均衡器,Tomcat作为Java应用...

    nginx+tomcat+memcached

    在构建分布式系统时,Session共享是一个关键问题,特别是在使用多种服务器技术如Nginx、Tomcat和Memcached的环境中。本文将深入探讨如何利用这些组件实现跨服务器的Session共享,以确保用户在登录后能够在整个系统中...

    Nginx+tomcat+memcached集群session共享(win7下)所用到

    本教程将深入探讨如何在Windows 7环境下,利用Nginx作为反向代理,Tomcat作为应用服务器,以及Memcached作为分布式缓存来实现session共享。下面将详细阐述每个组件的作用以及配置过程。 1. **Nginx**: Nginx是一...

    nginx+tomcat集群+memcached实现session共享(适用tc7、tc8)

    兼容Tomcat7 与tomcat8 +memcached做session共享 , 解决了tomcat7与Tomcat8的 java.lang.NoSuchFieldError: attributes 错误。

Global site tag (gtag.js) - Google Analytics