系统实施文档

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

  1. <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
  2.  
  3. memcachedNodes="n1: 192.168.134.136:11211"
  4.  
  5. requestUriIgnorePattern=".*/.(png|gif|jpg|css|js)$"
  6.  
  7. sessionBackupAsync="false"
  8.  
  9. sessionBackupTimeout="100"
  10.  
  11. transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
  12.  
  13. copyCollectionsForSerialization="false"/>

三、重启两个Tomcat。

3.3  
配置Nginx负载均衡

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

  1. http {
  2.  
  3. include mime.types;
  4.  
  5. default_type application/octet-stream;
  6.  
  7. sendfile on;
  8.  
  9. keepalive_timeout 65;
  10.  
  11. upstream web_server {
  12.  
  13. #ip_hash;
  14.  
  15. server 192.168.134.135:8080 max_fails=3 fail_timeout=30s;
  16.  
  17. server 192.168.134.136:8080 max_fails=3 fail_timeout=30s;
  18.  
  19. }
  20.  
  21. server {
  22.  
  23. listen 80;
  24.  
  25. server_name localhost;
  26.  
  27. location ~ .*\.jsp$ {
  28.  
  29. proxy_pass http://web_server;
  30.  
  31. proxy_redirect default ;
  32.  
  33. }
  34.  
  35. location / {
  36.  
  37. root html;
  38.  
  39. index index.html index.htm;
  40.  
  41. }
  42.  
  43. }
  44.  
  45. }

二、重启Nginx

3.4  
测试

3.4.1    测试页面

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

  1. <%@ page contentType="text/html; charset=GBK" %>
  2.  
  3. <%@ page import="java.util.*" %>
  4.  
  5. <html><head><title>Cluster App Test</title></head>
  6.  
  7. <body>
  8.  
  9. Server Info:
  10.  
  11. <%
  12.  
  13. out.println(request.getLocalAddr() + ":" + request.getLocalPort());
  14.  
  15. %>
  16.  
  17. <br><br>
  18.  
  19. <%
  20.  
  21. out.println("<br> ID " + session.getId()+"<br>");
  22.  
  23. String dataName = request.getParameter("dataName");
  24.  
  25. if (dataName != null && dataName.length() > 0) {
  26.  
  27. String dataValue = request.getParameter("dataValue") ;
  28.  
  29. session.setAttribute(dataName, dataValue);
  30.  
  31. }
  32.  
  33. out.print("<b>Session list</b> <br>");
  34.  
  35. Enumeration e = session.getAttributeNames();
  36.  
  37. while (e.hasMoreElements()) {
  38.  
  39. String name = (String)e.nextElement();
  40.  
  41. String value = session.getAttribute(name).toString();
  42.  
  43. out.println( name + " = " + value+"<br>");
  44.  
  45. System.out.println( name + " = " + value);
  46.  
  47. }
  48.  
  49. %>
  50.  
  51. <form action="test_session.jsp" method="POST">
  52.  
  53. name:<input type=text size=20 name="dataName"> <br>
  54.  
  55. key:<input type=text size=20 name="dataValue"> <br>
  56.  
  57. <input type=submit>
  58.  
  59. </form>
  60.  
  61. </body>
  62.  
  63. </html>

3.4.2    测试步骤

先启动memcached

然后启动niginx和两个Tomcat。

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

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

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAU8AAADbCAIAAABiL4REAAAMDklEQVR4nO3dX2vdRhrHcb0wN0lv3NyXQqHvoG8ifgWhgVztbaF0WRY2LIGlaaA4oTdtmuyydU3SkpJCwdkstRNDcXPhvTDRKpqZR8/8k0Z6vh9EkEZznhnp6Hf+2T7prt/8EwsLi4Wl+/Pf/sHCwmJh6c4B2EDaAStIO2AFaQesIO2AFaQdsIK0A1aQdsAK0g5YQdoBK0g7YAVpB6wg7YAVpB2wgrQDVpB2wArSDlhB2gEr0tPeva3gnApKnmTVQwvV9A6XMBO5/mhvqfqTdWrU7xzKIfSE4rH31+JJSRzbvWJKTKaW2OmNrqeyMwnd5X2jMPrkZJaqP1lHeaHH1q994QnHFXs+Z5uzgLQX6B8r+WpWTmyy/uS4mfW9m/qz2n7aS7XPrEzaG1c77bGv0LaXdk3NnLSH9qZdh/r7i7S/ueXUm8PhofaboXVhc7JO7FSFIp1DOC63oNJkGr3VctIyPN5Q55z6ffvM9YXjkusnTGZ0MYQmHNt/Tlmjhs6+d3OUW7l/bJ3Jecozn7wzyt5bcphD12Jm2oWTlv9oFdornORS9RMeTWJFXecJ/WdTYNTQE6CcKLc9s45yht6WFtJ+/vaLDuVNlPVjn4ti64c61Ei70KFGijTHMnk+t5P2c90VE5v22Dqa6YVaGkl7qeH0808bKCrtoUftIvVjbxgr9ryVPc/FJY6qPCrhJqN2/emwlvaqx1sq7Zo6Oc/tS6WItJ+fJx1VVIDT6hSpn9Y/85X2eeAcCuc59gGxan3NHTTqU6R+2oWR/CrDO5zmfIb6zyw97aGXZ2670LnvIA+hrKOcp7AZdVyjXcnz8c7K238056j6oVt5+yfUDw3qHaJgfWHckKj+Rc5nwrg1LDk2gDmRdsAK0g5YQdoBK0g7YAVpB6wg7YAVpB2wgrQDVpB2wArSDlhB2gErSDtgBWkHrCDtgBWkHbCCtANWkHbACtIOWEHaAStIO2AFaQesIO2AFaQdsIK0A1aU/L9ihP/oQ1NN2BsaOnZKnfPfoejnn9Nfno9cxz0Dscc12jV5XGl13HlqjkvTHlsndHKEkzbqEHVck+dtcv6zyRpbPi/KAxueFO9eoWbotnJNZf/YcUv19164wvw142rmEOqjqaNpybnvcs6tZiyhjjL/yXObU8W0eztE9e/ePPVN9t9q2jUtBc9Pcnu/qblDM9ujjjftQEaE8595vDNrN+36x2xhFM1pTUigPLfYQeWx5IIzpEvTfh64L0h7wnD1rCzt3vbJMLjPOf1e77OTt3/oynP7p6U9NK5cULmryHnW1KmXdu/5Segv1NGf/4TrRC44j0bTLodHn65hz1C3UKnJcUP9Y49aM66yjrKmNwPeCvLVPHn4sakO1VfWdPvrJyDcfcpIe6vJ05jZ+tI+eY9GTVgulXY1Z6Z9cnOyPapgbDDOB1fzqE5vclzlo09+/+QJCJtCndAu0i717xxC/xnSHtW+eNr19dPCIPfPT3vx/vobKoeLrUPatf1zrp7W2r2bCf2Fdk1j1bTPWX+e+cz26FlbxbQrDynq8VhzNmuv54yraUl+JhHmqZlzqE+pOjkJqT2W0EfTknwsM0scuHub0KivJo8iNw7bQ0Um2+X5xx6vcB5CMxcOKjSEMMlQtcnjUraHWtw5COdBc94mT4LcX5jY5HwS6kz2d8/DbJYcG8CcSDtgBWkHrCDtgBWkHbCCtANWkHbAivS0T/70sqDZflYpH04LPzIFkmX9dk1os7iZY0basUnrSPvMih/Oxs4PVqpM2jeGtGOTct+3C7u8r3uFd/uhXcr30u5Nbt++Ld826tCipuGdfOw0gLKyLj4hz97NtF2hFk3BUH3Ncel3pU0emFmBS9B7rQtPdJoiyg45Dx+xY+mnEVUQmE2ZS1D/LOp9FJjcFSrbSNrTJg/MrPxn8vorOypUjac9YfLAzKqnPX9XqCWzoP7ocqaRMDpQSVbah4S9mlul7QqNNWoJ3TbquJJnOOojTwCoh4sPsIK0A1aQdsAK0g5YQdoBK0g7YAVpB6yolXbhh8+1f+wsDKqfj/5H9MBaVLmUR795IneoPYGE+Uz2B9aoetrTOpSdQOx8SDg2qcW0u7+IGhs/0g640i/rhN8Yr/1m2K0fO5/MRxmgZel/FaPfdBtrpEioHzsfQo5NyrqshedMt6fcIVPso0/CoxWwdlmv5L3r7qamw2hv7Ctq0g5MmumVPM/twOIWeN9e6dMvoX7sfEg7NqnMZ/J9YOSX36NuOfMWpuSu6OcT9fYBWBcuaMAK0g5YQdoBK0g7YAVpB6wg7YAVpB2wgrQDVpB2wArSDlhB2gErSDtgBWkHrCDtgBWkHbCCtANWkHbACtIOWEHaAStIO2AFaQesIO2AFaQdsIK0A1asKe1Pf3525+7+X/76d5Y1Lnfu7t+5u//052dLX0d2rSntz355fvTieOlZINHRi+OjF8dPnv669ETsWlnal54CcpH2BZF2zIq0L4i0Y1akfUGkHbMi7Qsi7ZgVaV8QacesSPuCSDtmRdoX1HTau67ruv/PkLRvAGlfUEra+xB2b7h7h+2dj9DfHegCad8A0r6gxOd2N7GjlVD7aCXU34u0bwBpX1B62uVN9+nduyI857tI+waQ9gWVT7v8nC8/t8tI+waQ9gUVTnvmK3kZad8A0r6gttLufUfQb5L2DSDtC0r/TN79yH206X1PPlxx+3sH6jdJ+waQ9gU1/fP2EdK+AaR9QaQdsyLtC1pZ2vnumvXiu2sWt6a0n57+/svRbyyrXk5Pf1/6OrJrTWkHkIO0A1a0mHa+SXrVC98k3awW086ncavGp3HNajTtS08BuUh7g0g7qiDtDSLtqIK0N4i0owrS3qCsb6qqhLRvAGlvUJm/eC2LtG8AaW8QaUcVpL1BTaSdv2PfHtLeoNy0u19E4X47hbx5Ttq3iLQ3qEDave1R3UZI+waQ9gZlpT303VLeL58KJd9F2jeAtDco93+P0D9pk3ZTSHuD6r6Sd3dpPt4j7RtA2htU4DP50Lp305t2PqXbHtLeoNxvmNZ8Jj/cJRTsN0n7BpD2Bs36e/LKn9KT9g0g7Q2aI+2hp/oQ0r4BpL1Bjf4NHN9ds158d02zWkw73yS9gYVvkm5Qi2kHUANpB6xIT/vnX//44Y0vd67dYslfPrzx5edf/1jwfgVciWn/7P6Tyzf3d785uXr4miV/2f3m5PLN/c/uPyl77wJDiWn/4JM7u9+efPzT2ctUXdf1K0NyZ31ZoT2/Wlo3wcc/ne1+e/LBJ3fK3rvAUGLad67duvrD65zre5h2t1Ho77bLvCMK3coOqnf1h9c7126VvXeBoay0n2Touq5fGRp2kHkLDv+Vxw01akYcTl5u1CPtqC0r7cdJ3BQNdyXXDK243dzRQ3OQ56YcVIm0o7b0tL938MdvGbqu61eGhJ6j9eHNQ51Ho4QKChWEoUMV0rx38AdpR1VZaf9vhq7r0rp5b+h94R264XDXxbrb4u7yFhzdUHlQXqQdtaWnfffg7EWGi2z0K0PDPv2/oZZhu7LFHc4dwl0Z9XHrT+6S7R6ckXZUlZH278/+k6SP2ahRvoncx/vc7i0yquNW1rToB9Xb/Z60o670tL/76PRJhq7rhit9Wib7K/cKLcNd/eiTA0UNkeDdR6ekHVVlpf1xhq7rhiv9ptBZ6ON9mvX2cTuPKodG8RacbNEj7agtPe1XHr06zNB13XCl33S7DXeNNnNG9O6SZ+Kd20ja3A4PD688ekXaUVVG2h++Okh1EYyLlX6zN+oj3Ny9rUs5k2GLt4+3fbJF78pD0o660tN++buX/0Y5l797SdpRVVba/4VySDtqS0/7pQcn/0Q5lx6ckHZUlf4Xr5fuHX304PlDlPDRg+eX7h3xF6+oKv3bLHZufPXO/aN3HhyzFFjuH+3c+Ipvs0BV6d9U9em9x+9f/2Lx73jaxvL+9S8+vfe44P0KuPgWSsAK0g5YQdoBK0g7YAVpB6wg7YAVpB2wgrQDVpB2wArSDlhB2gErSDtgBWkHrCDtgBWkHbCCtANWkHbACtIOWEHaAStIO2AFaQesIO3AZu3t7Q03STuwWaQd2LJhwkk7sFl7e3ukHdi+Pceow/8AHeKuK/g1pNAAAAAASUVORK5CYII=" 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. Spring基础学习(三)—详解Bean(下)

    一.Bean的生命周期 1.概述      Spring IOC容器可以管理Bean的生命周期,Spring 允许在Bean的生命周期的特定点执行定制的任务.      Spring IOC容器对Be ...

  2. Spring基础学习(二)—详解Bean(上)

         在Spring配置文件中,用户不但可以将String.int等字面值注入Bean中,还可以将集合.Map等类型注入Bean中,此外还可以注入配置文件中其他定义的Bean. 一.字面值     ...

  3. Use “error_messages” in Rails 3.2? (raises “undefined method” error)

    I am getting the following error in my Rails 3.2 functional tests: ActionView::Template::Error: unde ...

  4. javascript核心概念——new

    如果完全没有编程经验的朋友看到这个词会想到什么? 上过幼儿园的都知道new表示 "新的" 的意思. var a = new Date() 按照字面的意思表示什么? 把一个新的dat ...

  5. Arrays工具类十大常用方法

    0. 声明数组 String[] aArray = new String[5]; String[] bArray = {"a","b","c" ...

  6. Webdriver API之操作(二)

    一.窗口截图 dirver.get_screenshot_as_file("D:\\report\\image\\xxx.jpg") 二.关闭窗口 dirver.close() # ...

  7. 多云时代,海外微软Azure云与国内阿里云专线打通性能测试

    本文地址:http://www.cnblogs.com/taosha/p/6528730.html 在云计算的大时代,大型客户都有业务全球拓展的需求,考虑到成本,时间因素,一般都是选择云计算,现在云计 ...

  8. css3 兼容各个浏览器

    transform:rotate(9deg);-ms-transform:rotate(9deg); /* Internet Explorer */-moz-transform:rotate(9deg ...

  9. linux重要的守护进程

    重要的守护进程 守护进程(Daemon)通常会随系统启动时激活并随系统关闭时停止,一直在系统后台中默默为用户提供服务: 守护进程名称 用处 crond 计划任务 dhcpd 动态IP地址分配服务(DH ...

  10. python自动化测试应用-番外篇--接口测试2

    篇2                 book-python-auto-test-番外篇--接口测试2 --lamecho辣么丑 大家好! 我是lamecho(辣么丑),今天将继续上一篇python接 ...