`
LiYunpeng
  • 浏览: 948061 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

关于 Nginx+Tomcat+Memcached做负载均衡加共享session

阅读更多
首先,确保在机器上已经安装了 nginx、tomcat、memcached,并且都可以成功启动服务

nginx可以正常启动了,我们就可以通过 域+端口号来访问nginx的80端口了
以本地举例
localhost

nginx可以访问,我们就开始配置nginx的配置文件,来做与Tomcat的映射

location / {
            root   html;
            index  index.html index.htm;
            proxy_pass    http://tomcat_115;
 }


这里面是配置了nginx默认解析仅截取了一段代码,并不代表全部意思
其中proxy_pass则配置了相当于是代理转向



那么我们还需要在nginx的配置文件里面添加
upstream tomcat_115 {
          server 192.168.1.110:8080 weight=1;  
          server 192.168.1.111:8080 weight=2;  
          server 192.168.1.112:8080 weight=3;  
}

这段代码就是配置的本地tomcat的映射,后面的weight则配置了权重,权重越高,则被分配到的几率越高

以上代码就是nginx负责对发来的请求做分配处理
配置好后,可以通过nginx -t来验证配置文件是否正确

接下来配置memcached
如下是官网的安装说明,可以参看
https://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration
官方文档里面说,首先要把memcached的jar包下载下来,并且添加到tomcat里面,官网给的路径是 $CATALINA_HOME/lib/,放到TOMCAT_HOME/lib/应该也可以
需要注意的是
jar包里面有tomcat的版本对应的jar
另外
如果你使用memcached,还需要下载spymemcached-2.8.12.jar and couchbase-client-1.1.4.jar.这两个jar包
如果用到couchbase,则还需要下载***jar包,这里不过多说明了

然后配置tomcat的配置文件,可以添加到server.xml里面,也可以添加到context.xml里面,
具体代码如下

<Context>
  ...
  <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
    memcachedNodes="n1:host1.yourdomain.com:11211,n2:host2.yourdomain.com:11211"
    requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
    />
</Context>

这是官网给的代码,另外还有两种写法,可参考官网,另外,其中的配置说明在官网里面也有,这里只简单介绍能跑通
memcachedNodes 的意思是指向memcached的节点,如果有多台机器安装了memcached,则需要全部加到这个配置里面,其中的格式为 域+端口号,这里面的域和端口号均指的是安装memcached的域和端口,memcached的默认端口号为11211

至于前面的n1,和n2,可以理解为编程语言里面的命名空间,可以在添加其他配置的时候用到
官网上面说,如果只有单个指向,可以不用写前边的n1等。

配置好这些,重启若干tomcat,重新加载nginx,就可以试试访问nginx的80端口啦,多访问若干次,被分配到访问的tomcat是随机的。
然后可以去看tomcat的访问日志,如果每个tomcat均有被访问到的记录,说明成功啦

可以通过简答的jsp代码来获取sessionId,确认session已经被共享,当刷新页面的时候sessionId是不变的

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>sessionID:<%=session.getId() %></h1>  
</body>
</html>
分享到:
评论
1 楼 迪伦少校 2015-06-26  
我只想知道,你最后配置成功了吗?我这里怎么tomcat总是死呢。。。

相关推荐

    nginx+tomcat7+memcached session会话保持

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

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

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

    Nginx+Tomcat7+Memcached集群Session共享

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

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

    在构建高可用、高性能的Web服务系统中,服务负载均衡和session共享是两个关键环节。本文将详细探讨如何使用lvs(Linux Virtual Server)、keepalived、nginx、tomcat以及memcached来实现这一目标。 首先,lvs是...

    tomcat8+memcached session共享

    描述中提到的“nginx+tomcat8+memcached session共享所需jar包,直接放到tomcat/lib下即可”,暗示了实现这一功能需要一些特定的Java库(JAR包)。这些JAR包将集成到Tomcat的运行环境中,使Tomcat能够与Memcached...

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

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

    Nginx+Tomcat+Memcached实现负载均衡过程中session所需架包

    在构建高性能、高可用性的Web应用系统时,通常会采用Nginx作为反向代理和负载均衡器,Tomcat作为Java应用服务器,而Memcached作为分布式缓存来处理session共享问题。本文将详细讲解如何利用Nginx、Tomcat和Memcached...

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

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

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

    Tomcat要支持memcached管理Session,需要调用一些jar库文件如下(网上有的文章中可能所说的jar包不全,或者版本不样的会报错,但这里我已经经过验证了): 1) couchbase-client-1.2.2.jar 2) javolution-5.5.1....

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

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

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

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

    nginx+tomcat8.0+memcached1.5 session共享所需jar包

    为了设置session共享,你需要在Tomcat的配置文件(如`context.xml`或`server.xml`)中配置Memcached Session Manager,并指定Spy Memcached为客户端,同时在Nginx配置中启用session sticky或负载均衡策略。...

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

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

    Nginx+Tomcat+Memcached集群Session共享

    总之,Nginx+Tomcat+Memcached的架构为大型Web应用提供了强大的Session共享和负载均衡能力,是现代分布式系统中常见的一种解决方案。通过深入理解和熟练掌握这一技术,开发者可以构建出更稳定、更可扩展的应用系统。

    nginx+tomcat+memcached服务架构实现session共享所需jar包

    "nginx+tomcat+memcached"服务架构是一种常见的解决方案,它利用Nginx作为反向代理和负载均衡器,Tomcat作为Java应用服务器,而Memcached作为分布式缓存系统来实现session共享。以下是对这个架构和相关知识点的详细...

    nginx+memcached+tomcat 负载均衡+session共享实现所有代码

    nginx+memcached+tomcat 负载均衡+session共享实现所有代码 教程请看:https://blog.csdn.net/dayuang2009/article/details/80312249

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

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

    Windows+Nginx+Tomcat7+Memcached.zip

    在构建分布式Web应用程序时,确保用户会话在多个服务器之间无缝共享是一项挑战。...Nginx的反向代理和负载均衡能力,结合Tomcat的动态处理和Memcached的会话共享,为大型网站或应用提供了高效且可靠的运行环境。

    负载均衡和session 共享(Nginx + Memcached + Tomcat)

    在IT行业中,负载均衡和session共享是构建高可用、高性能Web服务的关键技术。本文将详细介绍如何利用Nginx作为反向代理服务器,结合Memcached内存缓存系统,以及Tomcat应用服务器来实现这一目标。 首先,我们要理解...

    Nginx+Tomcat负载均衡

    首先大家注意: 本文章中没有session共享,关于session共享我会在下一篇中讲解,先实现Nginx+tomcat负载均衡再实现session共享。 从网上查了好多资料,多走了很多弯路,现在把自己成功的方法拿出来与大家分享。 ...

Global site tag (gtag.js) - Google Analytics