• Nginx+Memcached+Tomcat集群配置


    1.   Nginx

    Nginx是通过将多个Web Server绑定到同一个IP地址下,以实现多个WebServer间的负载均衡,降低单个Web Server的负荷,以提高整体的性能与稳定性。

    安装和配置Nginx的简单方式如下:

    1)      下载并解压Nginx到本地目录:http://nginx.org/en/download.html

    2)      对Nginx的配置主要是对它的配置文件/conf/nginx.conf的修改。如下链接是nginx.conf配置文件各个属性的详细说明:

    http://www.cnblogs.com/xiaogangqq123/archive/2011/03/02/1969006.html

    要利用nginx配置Web Server的负载均衡,需要修改的地方有:

    a)        在http标签下,配置upstream属性,如:

    [plain] view plaincopy
     
    1. upstream mysvr {  
    2.     #weigth参数表示权值,权值越高被分配到的几率越大  
    3.     server   192.168.8.1x:3128  weight=5;  
    4.     server   192.168.8.2x:80       weight=1;  
    5.     server   192.168.8.3x:80       weight=6;  
    6. }  

    其中,weight是可选项;若不配置weight,则默认所有的Web Server具有相同的权重。

    b)        在http标签下的server标签中,做适当的修改,如:

    [plain] view plaincopy
     
    1. server {  
    2.         listen       83;  
    3.        server_name  localhost;  
    4.    
    5.         location / {  
    6.             root   /root;  
    7.            index  index.jsp;  
    8.            proxy_pass        http:// mysvr;  
    9.             proxy_set_header  Host $host:83;  
    10.            proxy_set_header  X-Real-IP  $remote_addr;  
    11.             proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;  
    12.         }  
    13.          
    14.         ……  
    15. }  

    其中需要说明的是,server_name和listen分别设置的是用户访问的地址和端口;proxy_pass指定转向的服务器列表(在upstream中定义);proxy_set_header Host设置跳转的http报文中的地址为proxy_pass中指定的地址,同时可以在此处指定端口号,若不指定,则默认会跳到80端口。

    其它一些需要设置的属性请参见上述链接中的详细介绍。

    3)      配置完成后,在控制台中进入Nginx的根目录,运行nginx或nginx –s start则可启动Nginx服务器,运行nginx –s stop或nginx –s quit可关闭Nginx(不可使用Ctrl+C强制结束)。

    2.   Memcached

    Memcached是一个key-value映射的缓存系统。在WebApplication中可以利用Memcached完成一些频繁访问对象的缓存。而在分布式的Web Server集群中,由于需要保证各个单独的Web Server中的Session相一致,因此需要利用Memcached来支持。

    这里需要使用一个开源项目,即Memcached Session Manager(MSM),如下链接是该开源项目的官网:

    http://code.google.com/p/memcached-session-manager/

    如下链接是官方的安装和配置向导:

    http://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration

    利用MSM对已经通过Nginx实现集群的Tomcat服务器组进行统一Session存储管理的简单方法如下:

    1)      下载、安装、运行Memcached:

    Linux版:http://memcached.org/

    Windows版:http://code.jellycan.com/memcached/

    2)      下载所需的jar包并放置到Tomcat的lib路径下:

    a)        memcached-session-manager-${version}.jar,基础包

    b)        memcached-session-manager-tc6-${version}.jar(针对Tomcat 6)或者memcached-session-manager-tc7-${version}.jar(针对Tomcat 7),服务器支持包

    c)        spymemcached-2.8.12.jar和couchbase-client-1.1.4.jar,缓存支持包

    d)        msm-javolution-serializer.jar和javolution-5.4.3.1.jar,序列化支持包

    3)      在Tomcat的/conf/context.xml文件中,在根标签<context>下添加如下代码:

    [html] view plaincopy
     
    1. <ManagerclassNameManagerclassName="de.javakaffee.web.msm.MemcachedBackupSessionManager"  
    2.            memcachedNodes="${tag}:localhost:11211"  
    3.            requestUriIgnorePattern=".*/.(png|gif|jpg|css|js)$"  
    4.            sessionBackupAsync="false"  
    5.            sessionBackupTimeout="100"  
    6.            transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"  
    7.            copyCollectionsForSerialization="false"/>  

    其中${tag}可以替换成任意字符串,作为该WebServer的标记

    4)      完成上述配置后,启动Tomcat,若无错误则表示配置成功。通过HttpSession的getId方法获取到session id时,可以看到在id的最后有上述的标记

    转载:http://blog.csdn.net/sadfishsc/article/details/9151083

  • 相关阅读:
    【CTF WEB】函数绕过
    【CTF WEB】命令执行
    【CTF WEB】文件包含
    【CTF WEB】GCTF-2017读文件
    【技巧总结】Penetration Test Engineer[5]-Operating System Security(SQL Server、MySQL提权)
    【技巧总结】Penetration Test Engineer[4]-Web-Security(文件处理、会话管理、访问控制、SSRF、反序列化漏洞)
    【技巧总结】Penetration Test Engineer[3]-Web-Security(SQL注入、XXS、代码注入、命令执行、变量覆盖、XSS)
    【技巧总结】Penetration Test Engineer[2]-Information gathering
    【技巧总结】Penetration Test Engineer[1]-Basic
    【 Linux 】单台服务器上并发TCP连接数
  • 原文地址:https://www.cnblogs.com/peijie-tech/p/3849420.html
Copyright © 2020-2023  润新知