`

tomcat7+nginx+memcached 配置tomcat 集群以及负载均衡

阅读更多
经过从网上查找资料以及参考了几篇文章,总算自己摸索下来了如何进行一系列配置。
首先:配置tomcat集群 nginx+ tomcat7
1 安装jdk (可以选择6或者7都可以) 此处不用多说。
2 下载nginx-1.2.5   http://download.csdn.net/detail/shmilyxiaolong/7716351
3 下载 memcached  http://download.csdn.net/detail/shmilyxiaolong/7716357 
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;”

    修改后如下:  
 location / {
            root   html;
            index  index.html index.htm;
            proxy_pass    http://127.0.0.1;
        }


    (2)
在http {…}中加入以下代码:
#设定负载均衡的服务器列表
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>
		          server 127.0.0.1:8181 weight=1;
		          server 127.0.0.1:8282 weight=2;
		          server 127.0.0.1:8383 weight=3;
		      }

可以进行请求分发的简单测试,
    启动nginx,打开cmd,进入到 D:\tomcat7collection\myserver\nginx-1.2.6\ 路径下 输入nginx 敲回车,调度处任务管理器看到进程里面有nginx则表示启动成功
  启动三台tomcat
  用eclipse新建一个web项目cluster,该项目下新建一个cluster.jsp文件,编辑该文件内容如下:
<%@ 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("<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>

修改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包下载 http://download.csdn.net/detail/shmilyxiaolong/7716343   
好了,把上述jar包放到tomcat/lib 目录下,修改每个tomcat的配置文件tomcat\conf\context.xml
 在<context>...</context>标签之间加入如下代码:

<Manager
className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:127.0.0.1:11211"
sticky="false"
sessionBackupAsync="false"
lockingMode="uriPattern:/path1|/path2"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
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+tomcat7+memcached session会话保持

    总结起来,这个配置方案通过Nginx的会话保持功能配合Tomcat7与Memcached的集成,确保了用户会话在跨服务器环境下的连续性。同时,这种架构也具有良好的可扩展性和容错性,因为即使某台服务器宕机,其他服务器仍能...

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

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

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

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

    Nginx+Tomcat7+Memcached集群Session共享

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

    tomcat7+memcached+nginx 集群架包(无ngnix架包)

    【标题】"tomcat7+memcached+nginx 集群架包(无ngnix架包)"指的是一个用于构建高性能、可扩展的Web应用集群的解决方案,但不包括nginx配置部分。在这个架构中,Tomcat7作为Java应用服务器处理HTTP请求,Memcached...

    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需要使用...

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

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

    nginx + tomcat7 + memcached集群环境包共享

    这个配置主要是利用Nginx作为前端负载均衡器和静态资源服务器,Tomcat7作为后端Java应用服务器,而Memcached作为分布式缓存系统,以提升整体性能并减轻后端服务器的压力。 **Nginx** Nginx是一款高性能的HTTP和反向...

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

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

    手把手教你负载均衡-tomcat1.7+nginx+memcached

    配置Nginx时,你需要在`nginx.conf`文件中定义一个或多个upstream块,列出后端服务器(即Tomcat实例),并指定负载均衡策略。例如,你可以使用`round-robin`策略实现简单的轮询分配请求,或者利用`ip_hash`让相同IP...

    nginx+tomcat+memcached集群和负载均衡所有资源包

    nginx+tomcat+memcached集群和负载均衡所有资源包,具体集群方法请参见博文:http://blog.csdn.net/l1028386804/article/details/48289765

    Nginx+Tomcat+MemCached_集群配置

    标题 "Nginx+Tomcat+Memcached 集群配置" 涉及到的是一个常见的高性能 web 应用架构,它结合了 Nginx、Tomcat 和 Memcached 这三款强大的技术来实现高可用性和负载均衡。Nginx 是一款高效的静态资源服务器和反向代理...

    最新Nginx1.9.4+Tomcat+Memcached负载均衡配置.rar

    在提供的压缩包"**Nginx+Tomcat+Memcached负载均衡配置**"中,可能包含了Nginx的配置文件、Tomcat服务器的配置、Memcached的配置,以及可能的脚本或指南,帮助用户设置和管理这个复杂的系统。用户需要按照文档的指示...

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

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

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

    本知识点聚焦于如何在Windows环境下,利用Nginx作为反向代理,Memcached进行session共享,以及Tomcat作为Java应用服务器来搭建这样一个集群。这个配置确保了用户在集群中的任何一台服务器上的操作都能被其他服务器...

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

    在构建高性能、高可用性的Web应用系统时,通常会采用Nginx作为反向代理和负载均衡器,Tomcat作为应用服务器处理Java Servlet和JSP,而Memcached用于存储和共享Session数据。这个配置可以有效地分发用户请求,提高...

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

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

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

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

Global site tag (gtag.js) - Google Analytics