系统实施文档

Nginx+Tomcat+MemCached 集群配置手册

目    录

第1章   概述

1.1   目标

互联网的快速发展带来了互联网系统的高负载和高可用性, 这要求我们在设计系统架构时会应用很多高性能的产品, 本文主要描述互联网架构中门户应用的集群的配置工作,最终用以指导系统实施。

1.2   预期读者

本文档用于指导系统工程师进行系统实施工作,架构师和系统工程师应该通读本文档,选择适当版本用于自己的系统架构。

第2章   产品介绍

2.1   Nginx介绍

Nginx是一个高性能的 HTTP 和 反向代理服务器;Nginx 支持简单的负载均衡和容错;Nginx支持作为基本 HTTP 服务器的功能。

2.2   Memcached介绍

Memcached 是一个高性能的分布式内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,Memcached能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。

第3章   配置Session共享

3.1   环境说明

一、准备两台虚拟机,虚拟机上安装CentOS5.4版本;

A服务器IP:192.168.134.135

B服务器IP:192.168.134.136

A机上安装nginx-1.2.0和apache-tomcat-6.0.33

B机上安装memcached-1.4.10和apache-tomcat-6.0.33

二、除此之外,我们还需要一些MSM相关的jar包:

javolution-5.4.3.1.jar

memcached-2.4.2.jar

memcached-session-manager-1.5.1.jar

memcached-session-manager-tc6-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

以上jar包在http://code.google.com/p/memcached-session-manager/downloads/list中下载。

3.2   配置Session共享

一、将上面所述的MSM的jar包拷贝至Tomcat安装目录lib文件夹中;

二、编辑context.xml

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

memcachedNodes="n1: 192.168.134.136:11211"

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

sessionBackupAsync="false"

sessionBackupTimeout="100"

transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"

copyCollectionsForSerialization="false"/>

三、重启两个Tomcat。

3.3  
配置Nginx负载均衡

一、Nginx安装完毕后,修改配置文件conf/nginx.conf

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    upstream web_server {

       #ip_hash;

       server 192.168.134.135:8080 max_fails=3  fail_timeout=30s;

       server 192.168.134.136:8080 max_fails=3  fail_timeout=30s;

    }

server {

        listen       80;

        server_name  localhost;

        location ~ .*\.jsp$ {

             proxy_pass   http://web_server;

             proxy_redirect default ;

        }

        location / {

            root   html;

            index  index.html index.htm;

        }

   }

}

二、重启Nginx

3.4  
测试

3.4.1    测试页面

在两个Tomcat的webapps目录下创建test目录,在test目录下,创建test_session.jsp文件,文件内容如下:

<%@ page contentType="text/html; charset=GBK" %>

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

<html><head><title>Cluster App Test</title></head>

<body>

   Server Info:

   <%

out.println(request.getLocalAddr() + ":" + request.getLocalPort());

%>

<br><br>

    <% 

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

String dataName = request.getParameter("dataName");

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

String dataValue = request.getParameter("dataValue") ;

session.setAttribute(dataName, dataValue); 

} 

out.print("<b>Session list</b> <br>"); 

Enumeration e = session.getAttributeNames(); 

while (e.hasMoreElements()) { 

String name = (String)e.nextElement();

String value = session.getAttribute(name).toString(); 

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

System.out.println( name + " = " + value);

}

%>

<form action="test_session.jsp" method="POST">

          name:<input type=text size=20 name="dataName"> <br>

          key:<input type=text size=20 name="dataValue"> <br>

          <input type=submit>

    </form>

  </body>

</html>

3.4.2    测试步骤

先启动memcached

然后启动niginx和两个Tomcat。

打开浏览器,输入http:// 192.168.134.135/test/test_session.jsp

填写name和key,提交后看以看到

aaarticlea/png;base64,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" alt="" />

关闭192.168.134.135上的Tomcat,再刷新,如果ID的值相同且Session
List中值也存在,说明Session是被共享的。

Nginx+Tomcat+MemCached 集群配置手册的更多相关文章

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

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

  2. Nginx+Tomcat+Memcached 集群

    写过一篇 Apache Httpd+Tomcat 的集群, 现在来看看Nginx+Tomcat+Memcached是怎么集群的. 先看看用的版本和工具: Nginx: nginx-1.8.1 Tomc ...

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

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

  4. 【转】Nginx+Tomcat+Memcached集群

    Tomcat集群session同步方案有以下几种方式: 使用tomcat自带的cluster方式,多个tomcat间自动实时复制session信息,配置起来很简单.但这个方案的效率比较低,在大并发下表 ...

  5. Nginx+Tomcat+Memcached集群

    Tomcat集群session同步方案有以下几种方式: 使用tomcat自带的cluster方式,多个tomcat间自动实时复制session信息,配置起来很简单.但这个方案的效率比较低,在大并发下表 ...

  6. 云服务器 nginx + tomcat 部署集群 配置

    nginx.conf #user nobody; worker_processes ; #error_log logs/error.log; #error_log logs/error.log not ...

  7. nginx+tomcat实现集群,redis实现session共享,软连接实现文件共享:http://blog.csdn.net/hua1586981/article/details/78132710

    转载 2017年02月08日 16:52:41 730 相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额.那究竟它有什么作用呢?可能很多人未必了解. 说到反向代理,可能 ...

  8. Ubuntu_10.04下Hadoop-0.20.2集群配置手册

    Ubuntu_10.04下Hadoop-0.20.2集群配置手册 一.软硬件环境的准备 下面的文章来自hadoopor.com,我先交待一下我自己的环境: 两台机器,每台机器上面两个虚机(vmware ...

  9. Nginx + Tomcat搭建集群

    一.Tomcat集群带来的好处 1.提高服务的性能,并发能力,以及高可用性 2.提供项目架构的横向扩展能力 二.Tomcat集群实现原理 通过Nginx负载均衡进行请求转发 三.Nginx + Tom ...

随机推荐

  1. Android通过AOP实现防止按钮连续点击

    防止连续点击的实现方式有很多种,比如,在所有的onclick里面加上防多次点击的代码,或者定义一个新的OnClickListener,在里面加上防多次点击的代码,然后项目中的所有OnClickList ...

  2. matlab函数:residue和residuez的用法

    一.residue函数 1. 概念:在部分分式展开式和多项式系数之间转换.(Convert between partial fraction expansion and polynomialcoeff ...

  3. JSON的数据类型

    数据类型简介 在计算机中,我们需要知道正在处理什么类型的数据,因为不同类型的数据有着不同的操作途径.可以让两个阿拉伯数字相乘,但是不能让两个单词相乘. 在计算机科学中,有一种数据类型被称为原始数据类型 ...

  4. 07 The VC Dimension

    当N大于等于2,k大于等于3时, 易得:mH(N)被Nk-1给bound住. VC维:最小断点值-1/H能shatter的最大k值. 这里的k指的是存在k个输入能被H给shatter,不是任意k个输入 ...

  5. 如何在Windows系统下安装Linux虚拟机

    先安装虚拟机这个软件,然后在虚拟机里装linux. 1,准备,下载VM虚拟机,链接: http://pan.baidu.com/s/1z79oU 密码: vbap.和linux镜像文件,可以下载ubu ...

  6. Memetic Algorithm(文化基因算法)

    1. 文化进化理论 威尔逊认为,从性质上来讲,文化进化总是以拉马克主义为特征的,即文化进化依赖于获得性状的传递,相对来说速度比较快:而基因进化是达尔文主义式的,依赖于经过几个世代的基因频率的改变,因而 ...

  7. Spring Boot 学习笔记--整合Redis

    1.新建Spring Boot项目 添加spring-boot-starter-data-redis依赖 <dependency> <groupId>org.springfra ...

  8. 【PAT_Basic日记】1004 成绩排名

    至今仍然存在问题,第一个测试点不过 #include <stdio.h> #include <stdlib.h> #include <string.h> typed ...

  9. IT职场经纬 |阿里web前端面试考题,你能答出来几个?

    有很多小伙伴们特别关心面试Web前端开发工程师时,面试官都会问哪些问题.今天小卓把收集来的"阿里Web前端开发面试题"整理贴出来分享给大家伙看看,赶紧收藏起来做准备吧~~ 一.CS ...

  10. React的学习(上)

    摘要 众所周知,前端三大框架Angular.React.Vue,所以为了跟上时代的步伐,最近开始着手学习React,这时候就发现个大问题,框架一直在更新,提倡的编写语法也在更新,网上有许多教程都是一两 ...