Nginx+Tomcat+MemCached 集群配置手册
系统实施文档
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 集群配置手册的更多相关文章
- 【转】Nginx+Tomcat+Memcached集群Session共享
cookie是怎样工作的? 例 如,我们创建了一个名字为login的Cookie来包含访问者的信息,创建Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名 是“Michael J ...
- Nginx+Tomcat+Memcached 集群
写过一篇 Apache Httpd+Tomcat 的集群, 现在来看看Nginx+Tomcat+Memcached是怎么集群的. 先看看用的版本和工具: Nginx: nginx-1.8.1 Tomc ...
- session服务器Nginx+Tomcat+Memcached集群Session共享
cookie是怎样工作的? 例如,我们创立了一个名字为login的Cookie来包含访问者的信息,创立Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名是“Michael Jor ...
- 【转】Nginx+Tomcat+Memcached集群
Tomcat集群session同步方案有以下几种方式: 使用tomcat自带的cluster方式,多个tomcat间自动实时复制session信息,配置起来很简单.但这个方案的效率比较低,在大并发下表 ...
- Nginx+Tomcat+Memcached集群
Tomcat集群session同步方案有以下几种方式: 使用tomcat自带的cluster方式,多个tomcat间自动实时复制session信息,配置起来很简单.但这个方案的效率比较低,在大并发下表 ...
- 云服务器 nginx + tomcat 部署集群 配置
nginx.conf #user nobody; worker_processes ; #error_log logs/error.log; #error_log logs/error.log not ...
- nginx+tomcat实现集群,redis实现session共享,软连接实现文件共享:http://blog.csdn.net/hua1586981/article/details/78132710
转载 2017年02月08日 16:52:41 730 相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额.那究竟它有什么作用呢?可能很多人未必了解. 说到反向代理,可能 ...
- Ubuntu_10.04下Hadoop-0.20.2集群配置手册
Ubuntu_10.04下Hadoop-0.20.2集群配置手册 一.软硬件环境的准备 下面的文章来自hadoopor.com,我先交待一下我自己的环境: 两台机器,每台机器上面两个虚机(vmware ...
- Nginx + Tomcat搭建集群
一.Tomcat集群带来的好处 1.提高服务的性能,并发能力,以及高可用性 2.提供项目架构的横向扩展能力 二.Tomcat集群实现原理 通过Nginx负载均衡进行请求转发 三.Nginx + Tom ...
随机推荐
- Android通过AOP实现防止按钮连续点击
防止连续点击的实现方式有很多种,比如,在所有的onclick里面加上防多次点击的代码,或者定义一个新的OnClickListener,在里面加上防多次点击的代码,然后项目中的所有OnClickList ...
- matlab函数:residue和residuez的用法
一.residue函数 1. 概念:在部分分式展开式和多项式系数之间转换.(Convert between partial fraction expansion and polynomialcoeff ...
- JSON的数据类型
数据类型简介 在计算机中,我们需要知道正在处理什么类型的数据,因为不同类型的数据有着不同的操作途径.可以让两个阿拉伯数字相乘,但是不能让两个单词相乘. 在计算机科学中,有一种数据类型被称为原始数据类型 ...
- 07 The VC Dimension
当N大于等于2,k大于等于3时, 易得:mH(N)被Nk-1给bound住. VC维:最小断点值-1/H能shatter的最大k值. 这里的k指的是存在k个输入能被H给shatter,不是任意k个输入 ...
- 如何在Windows系统下安装Linux虚拟机
先安装虚拟机这个软件,然后在虚拟机里装linux. 1,准备,下载VM虚拟机,链接: http://pan.baidu.com/s/1z79oU 密码: vbap.和linux镜像文件,可以下载ubu ...
- Memetic Algorithm(文化基因算法)
1. 文化进化理论 威尔逊认为,从性质上来讲,文化进化总是以拉马克主义为特征的,即文化进化依赖于获得性状的传递,相对来说速度比较快:而基因进化是达尔文主义式的,依赖于经过几个世代的基因频率的改变,因而 ...
- Spring Boot 学习笔记--整合Redis
1.新建Spring Boot项目 添加spring-boot-starter-data-redis依赖 <dependency> <groupId>org.springfra ...
- 【PAT_Basic日记】1004 成绩排名
至今仍然存在问题,第一个测试点不过 #include <stdio.h> #include <stdlib.h> #include <string.h> typed ...
- IT职场经纬 |阿里web前端面试考题,你能答出来几个?
有很多小伙伴们特别关心面试Web前端开发工程师时,面试官都会问哪些问题.今天小卓把收集来的"阿里Web前端开发面试题"整理贴出来分享给大家伙看看,赶紧收藏起来做准备吧~~ 一.CS ...
- React的学习(上)
摘要 众所周知,前端三大框架Angular.React.Vue,所以为了跟上时代的步伐,最近开始着手学习React,这时候就发现个大问题,框架一直在更新,提倡的编写语法也在更新,网上有许多教程都是一两 ...