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属性,如:

  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标签中,做适当的修改,如:

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

其中需要说明的是,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>下添加如下代码:

  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

Nginx+Memcached+Tomcat集群配置的更多相关文章

  1. Nginx+Memcached+Tomcat集群配置(MSM--win7 64bit)

    本次主要是在win7 64 上演示操作. web应用构建 Memcached安装配置启动 Tomcat配置 所需jar包 memcached-session-manager 序列化 contextxm ...

  2. Nginx+Memcached+Tomcat集群配置实践(Sticky Session)

    准备工作 创建一个简单的web应用,名为session.其中有两个页面,分别如下所示: 页面login.jsp <%@ page language="java" conten ...

  3. 配置集群Nginx+Memcached+Tomcat集群配置

    上班之余抽点时间出来写写博文,希望对新接触的朋友有帮助.今天在这里和大家一起学习一下配置集群 1.   Nginx Nginx是通过将多个Web Server绑定到同一个IP地址下,以实现多个WebS ...

  4. 使用nginx搭建tomcat集群配置

    软件准备: (1)jdk-8u73-linux-x64.tar.gz (2)apache-tomcat-7.0.57.tar.gz (3)nginx-1.7.7.tar.gz 准备3台Linux机器, ...

  5. nginx 、tomcat 集群配置、shiro Session 共享

    一.nginx.config 配置 #user nobody; worker_processes ; #error_log logs/error.log; #error_log logs/error. ...

  6. nginx+tomcat集群配置(4)--rewrite规则和多应用根目录设定思路

    前言: nginx中有一块很重要的概念, 就是rewrite规则. 它会对URL进行修改, 然后进行内部的重定向. rewrite授予了nginx更多的自由, 使得后级服务的接入更加地方便. 本文将简 ...

  7. nginx+tomcat集群配置(1)---根目录设定和多后端分发配置

    前言: 对于javaer而言, nginx+tomcat集群配置, 已然成了web应用部署的主流. 大公司如此, 小公司亦然. 对于个人开发者而言, 资源有限, 往往多个web应用混部于一台服务器(云 ...

  8. Nginx+Tomcat集群配置

    Nginx+Tomcat集群配置 一台虚拟机作为Nginx服务 两太虚拟机配置Tomcat+jdk环境 Nginx测试 启动: cd usr/local/nginx/sbin ./nginx ---& ...

  9. nginx整合tomcat集群并做session共享----测试案例

    最近出于好奇心,研究了一下tomcat集群配置,并整合nginx,实现负载均衡,session共享,写篇记录,防止遗忘.---------菜鸡的自我修炼. 说明:博主采用一个web项目同时部署到两台t ...

随机推荐

  1. hibernate中常用的Hql语句总结

    // HQL: Hibernate Query Language. // 特点: // >> 1,与SQL相似,SQL中的语法基本上都可以直接使用. // >> 2,SQL查询 ...

  2. VSTS 更名为 Azure DevOps

    微软正式对外宣布Azure DevOps,其实就是原来的VSTS,我们来看一下Azure DevOps的介绍: 今天我们宣布Azure DevOps.与世界各地的客户和开发人员合作,很明显,DevOp ...

  3. Unity3d ugui 实现image代码换图

    核心脚本代码 Image IMGE = transform.Find("IMGE").GetComponent<Image>();Sprite sprite1 = Re ...

  4. ASP.NET Core使用EF Core操作MySql数据库

    ASP.NET Core操作MySql数据库, 这样整套环境都可以布署在Linux上 使用微软的 Microsoft.EntityFrameworkCore(2.1.4) 和MySql出的 MySql ...

  5. BitAdminCore框架应用篇:(四)核心套件querySuite按钮功能

    索引 NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:http://bit.bitdao.cn 框架源码:https://github.com/chenyinxin/coo ...

  6. SSRS (一)创建基础报表

    ReportService创建基础报表 1.数据库SQL Server2012选择SQL Server Data Tools 2.创建商业智能(BI)项目 选择报表服务器项目 ReportServic ...

  7. 关于文件的INode与Java中的文件操作接口

    本文由作者周梁伟授权网易云社区发布. 近日做的项目中涉及到多进程共同读写多个文件的问题,文件名和最后修改时间都是可能会被频繁修改的,因而识别文件的唯一性会产生相当的麻烦,于是专门再学习了一下文件系统对 ...

  8. You can also run `php --ini` inside terminal to see which files are used by PH P in CLI mode

    在php.ini中打开extension=php_fileinfo.dll 就可以了

  9. nodejs实现请求代理

    通常我们常用的请求方法只有GET.POST.PUT和DELETE,所以在此只介绍这四种和文件上传的代理方式 在此我们使用request.js第三方模块实现 GET(DELETE同GET,将reques ...

  10. centos7无法上网问题

    在虚拟机VM中安装了centos7,无法上网,在同一个虚拟机里,也安装了Ubuntu是可以上网的,不知道咋回事,所以上网查了资料博客,现总结如下. 一.首先打开虚拟的设置,可以看到虚拟机网络的设置默认 ...