`
jy00509336
  • 浏览: 243503 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

Nginx + Membase(memcache)+ tomcat配置共享的session web服务集群详解

 
阅读更多

转载自: http://blog.sina.com.cn/s/blog_5f53615f0100w299.html

 

本例用到的软件和相应版本如下:

Nginx for windows V1.1.8,下载地址:http://nginx.org/en/download.html

Membase for windows V1.7.2,下载地址:http://www.couchbase.com/downloads/membase-server/community

Tomcat for windows V7

Memcached session manager V1.5.1,下载地址:http://code.google.com/p/memcached-session-manager/

Memcached java client: spymemcached-2.7.3.jar,下载地址:http://code.google.com/p/spymemcached/

 

集群结构图如下:

Nginx <wbr>+ <wbr>Membase(memcache)+ <wbr>tomcat配置共享的session <wbr>web服务集群详解

搭建步骤:

一、             部署两个tomcat7,端口分别改为5080和6080

二、             下载nginx,并解压,修改配置:

打开nginx-1.1.8\conf\nginx.conf配置文件

 

 

#user  nobody;

#cpu个数,与机器有关

worker_processes  1;

 

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

 

#pid        logs/nginx.pid;

 

 

events {

    #连接数,一般在windows系统下不能设置太大,否则会造成没有相应

    worker_connections  200;

}

 

 

http {

    include       mime.types;

    default_type  application/octet-stream;

 

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

    #                  '$status $body_bytes_sent "$http_referer" '

    #                  '"$http_user_agent" "$http_x_forwarded_for"';

 

    #access_log  logs/access.log  main;

 

    sendfile        on;

    #tcp_nopush     on;

 

    #keepalive_timeout  0;

    keepalive_timeout  65;

 

    client_header_buffer_size 1k;

    large_client_header_buffers 4 4k;

 

    #gzip  on;

 

upstream myserver {

    #tomcat访问url,权重

             server localhost:6080 weight=1 fail_timeout=10;

             server localhost:5080 weight=1 fail_timeout=10;

        #采用共享session不能用ip_hash

             #ip_hash;

    }

 

server {

    #监听端口

        listen      7080;

        #监听服务器

        server_name  172.18.17.130;

 

        charset utf-8;

 

        #access_log  logs/host.access.log  main;

 

        location / {

            root   html; 

            index  index.html index.htm; 

            #请求转发到前面定义的myserver

            proxy_pass http://myserver;

            #html头加上7080端口

                 proxy_set_header Host $host:7080;

        }

 

        #error_page  404              /404.html;

 

        # redirect server error pages to the static page /50x.html

        #

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

 

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80

        #

        #location ~ \.php$ {

        #    proxy_pass   http://127.0.0.1;

        #}

 

        # deny access to .htaccess files, if Apache's document root

        # concurs with nginx's one

        #

        #location ~ /\.ht {

        #    deny  all;

        #}

    }

 

}

 

三、             下载并安装Membase,安装后会自动启动membase服务,进入控制台显示:

Nginx <wbr>+ <wbr>Membase(memcache)+ <wbr>tomcat配置共享的session <wbr>web服务集群详解

登录,进入配置。

四、             Copy jar包到tomcat\lib目录下

将Memcached session manager的几个jar包:

memcached-session-manager-1.5.1.jar、memcached-session-manager-tc7-1.5.1.jar、msm-javolution-serializer-1.5.1.jar、msm-kryo-serializer-1.5.1.jar、msm-xstream-serializer-1.5.1.jar

和spymemcached-2.7.3.jar,copy到两个tomcat的lib目录下。其中memcached-session-manager-tc7-1.5.1.jar是for tomcat7的,msm-javolution-serializer-1.5.1.jar、msm-kryo-serializer-1.5.1.jar、msm-xstream-serializer-1.5.1.jar是负责session持久化,根据配置文件的持久化策略选择相应的一种就可以。

五、             修改tomcat session存储策略

修改tomcat\conf\context.xml文件,在<context>中加入

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" 

    memcachedNodes="n1:172.18.17.130:11211" 

         sticky="false"

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

    />

其中,className是session管理类,memcachedNodes="n1:172.18.17.130:11211"是membase cache集群,这里只有一个节点;sticky=”false”表示不采用粘性session,默认值是true,如果要真正的实现负载均衡就要使用session共享方式,而不采用粘性session。Session持久化默认是采用java持久化,但性能比Kryo方式差。如果是kryo方式还需要引入更多的相关jar包。

分享到:
评论

相关推荐

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

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

    nginx+tomcat+redis完成session共享

    这个小例子"nginx+tomcat+redis完成session共享"旨在演示如何通过这三种技术实现跨服务器的用户会话共享,以提升用户体验并简化系统管理。以下是这些技术及其在会话共享中的作用: 1. **Nginx**:Nginx是一款高性能...

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

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

    Nginx+Memcache+Tomcat集群(session共享)

    【Nginx+Memcache+Tomcat集群(session共享)】是一种常见的高可用性和负载均衡解决方案,主要用于提升Web应用的性能和可扩展性。这个配置利用Nginx作为反向代理和负载均衡器,Memcache作为分布式session存储,而...

    nginx+Redis+tomcat实现session共享jar

    包含的jar包如下: commons-pool2-2.0.jar jedis-2.5.2.jar tomcat-juli-adapters.jar tomcat-juli.jar tomcat-redis-session-manager1.2.jar

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

    通过以上步骤,我们构建了一个基于Nginx+Tomcat+Memcached的高可用Web服务集群,实现了Session的共享,提高了系统的扩展性和稳定性。在实际运营过程中,还需要关注监控、日志、安全等方面,确保系统的健康运行。

    Nginx+tomcat6+memcache配置集群session共享所需jar包

    通过以上步骤,我们可以构建一个高效且具备session共享能力的Nginx+Tomcat6+Memcached集群环境。这样的配置不仅能够提高服务的可用性,还能确保用户在整个系统中的体验连贯性,避免了因session丢失导致的问题。

    Nginx+Memcache+Linux+Tomcat集群

    在构建高性能的Web服务环境中,...总结来说,Nginx+Memcache+Linux+Tomcat集群通过合理利用资源,实现了Web服务的高性能、高可用性和可扩展性。这种架构在处理大量并发请求时表现出色,是现代互联网服务的常见选择。

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

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

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

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

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

    【Nginx+Tomcat+Memcached实现Tomcat集群和session共享】 在现代Web应用程序的部署中,为了提高系统的可用性和可扩展性,通常会采用集群技术。将多个Tomcat服务器组成一个集群,通过负载均衡策略分发用户请求,以...

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

    通过上述步骤,我们可以成功地在Windows7环境下,利用Nginx、Memcached和Tomcat搭建一个session共享的集群环境。这种方式不仅可以提高系统的可用性和扩展性,还能保证用户在不同服务器间的会话一致性。

    Nginx+tomcat配置集群负载均衡实例

    在IT行业中,构建高效、可扩展的Web服务是至关重要的,而"Nginx+Tomcat"的组合常被用于实现这一目标。本实例将详细阐述如何通过Nginx配置集群负载均衡,以实现动静分离,提升系统性能和稳定性。 首先,Nginx是一款...

    nginx+tomcat shiro实现多tomcat下session共享

    "nginx+tomcat shiro实现多tomcat下session共享"这一主题,就是探讨在这样的架构中,如何有效管理和共享session。 1. **Nginx的作用**: Nginx是一个高性能的HTTP和反向代理服务器,常用于负载均衡,可以将用户的...

    Windows+Nginx+Tomcat做负载均衡同时实现session共享Demo

    总之,“Windows+Nginx+Tomcat做负载均衡同时实现session共享Demo”是一个实践性强的教学资源,它涵盖了Web服务集群中的关键技术和最佳实践,对于学习和提升系统架构能力非常有帮助。通过深入理解和实践这个Demo,...

    tomcat+nginx+memcache集群

    tomcat+nginx+memcache高可用

    Nginx+Keepalived+Redis+Tomcat

    根据提供的文件信息,本文将详细解析如何在Linux环境下构建Nginx+Keepalived+Redis+Tomcat集群,实现session共享、负载均衡以及高可用性。以下内容将围绕集群规划与具体实施步骤展开。 ### 一、集群规划 在进行...

    Nginx+Tomcat7+Memcached集群Session共享

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

    Nginx+tomcat+redis

    在构建高性能、高可用性的Web服务时,"Nginx+Tomcat+Redis"的组合是一种常见的架构模式。这个架构充分利用了每个组件的优势,以实现高效的数据处理、动态内容渲染和负载均衡。以下是对这套技术栈的详细解释: 1. **...

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

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

Global site tag (gtag.js) - Google Analytics