• 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,提交后看以看到

     

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

  • 相关阅读:
    github系列:gh-pages
    js 传参乱码问题解决
    nvm安装
    如何创建.babelrc文件?
    Hello World
    python——字符串截取
    python读入写入中文名图片
    VGG16等keras预训练权重文件的下载及本地存放
    在Linux服务器非root权限下搭建TensorFlow框架(Anaconda)
    查看linux服务器上Tensorflow的版本和位置
  • 原文地址:https://www.cnblogs.com/crazylqy/p/5550539.html
Copyright © 2020-2023  润新知