门户网站Web及应用服务器加速及负载均衡方案

更新时间:2024-03-10 00:30:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

门户网站Web及应用服务器加速及负载均衡方案

门户网站结构的改造

目前,比较流行的门户网站结构一般分为3层,第一层是WWW服务器或反向代理服务器,负责处理静态内容;第二层是应用服务器,负责处理后台程序;第三层是数据库,负责存放网站数据。

通常,一个较大的门户网站用户人群都在几百万以上。根据总结出的经验值,同时在线的用户一般最多为5%,同一时刻更新页面的用户最多为1%,每个页面请求20个文件,则一个用户人群是300万的网站,同一时刻最大的http请求数为:300万×5%×1%×20=30000次。我们知道,一台用apache做web服务的PC Server一般同一时刻能承受约2500次的http请求,因此,一个用户人群是300万的网站需要的web 服务器的数量为:30000/2500=12台。

除了第一层的web 服务器,为了提高后台程序的工作效率,网站还使用专门的应用服务器提供应用程序服务以及页面发布服务,使用专门的数据库服务器,实现后台应用的数据库驱动并提供统一用户认证服务。同样,各种应用服务器也将根据实际的应用处理能力需要配置多台且能够同时提供应用服务。

要让多台web 服务器和应用服务器负载均衡地同时对外提供服务,最好的解决方案就是采用4/7层交换设备,而优势网络(Asce Networks)公司的InChorus应用前端交换机就是门户网站的最佳选择。

优势网络(Asce Networks) 的InChorus的核心是技术十分成熟的Web交换机(第四到第七层交换),它是在单一集成式业务平台上提供高可用性和安全性的新一代网络应用交换机。当传统的4/7 交换器还在做所谓的服务器负载均衡时,Asce

Networks 却已经看到了客户目前已经快速发展和变化的应用需求,甚至客户不断发展的未来的需要。InChorus强调的不只是服务器负载平衡,它优异的功能包括智能内容交换、应用加速、数据压缩、TCP offload、SSL性能加速、N+M设备自身负载均衡等。

InChorus – 特性及功能概述

InChorus负载均衡交换机产品是最先进的应用层交换产品,它易于安装、配置和使用。优势网络在隐藏其复杂性方面做出了优秀的工作,这使得InChorus负载均衡交换机产品的使用极其合理。

虚拟服务器

InChorus产品架构– 以虚拟服务器为核心

InChorus产品的核心是其关于―虚拟服务器‖的概念。它是服务器应用或服务的高效前端,管理所有特定端口和协议的流量。典型的设置是定义多个虚拟服务器,各自控制的不仅是不同的流量,还针对不同的环境基于智能的策略以不同的方法管理流量。例如,他可以应用策略来决定哪个服务器池来处理特定的用户请求。根据支持的协议,可以包括范围极广的TCP和UDP协议,包括 HTTP1.0/1.1,HTTPS,SSL/任何SSL封包的协议(SSL 会

话可以在虚拟服务器上解密),FTP (active & passive),telnet,SMTP,POP,IMAP,DNS,LDAP,RADIUS,NNTP,SOAP,XML-RPC,SQL…等等.

可以对虚拟服务器进行以下进一步管理:

1. 可以使用TrafficSmart智能流量管理语言编辑的规则来检查进入的连接请求,然后选择合适的操作。这些规则可以分为多个层次并且可以按照需求以任意的顺序进行创建。

每条规则都可以检查连接请求,或者可以改变它,然后可能执行以下三种操作中的一种:

选择一个服务器池来处理请求 ? 关闭连接请求

? 无动作,连接请求转由规则列表中的下一条规则来处理

?

在每个虚拟服务器后端可能有一个或多个服务器池,包括预先定义的一个缺省服务器池,如果没有规则来确定具体的数据路由,连接请求将发送到该服务器池来处理。

2. SSL加速和解密

InChorus设备中,虚拟服务器可以解密SSL流量,而不是简单地将该流量推送到应用服务器去处理。有两点原因说明这样做是非常有用的,原因之一,在解密后,访问规则可以分析访问请求的包头和内容,以确定数据流的路由。如果不解密则得不到数据包的几乎任何信息。原因之二,解密请求需要非常强大的处理能力支持,因此,InChorus在数据包发送到后端服务器前就先行解密,可以大大降低后端服务器的负载压力。当然,如果解密数据包仅仅是向应用访问规则,也可以在应用规则之后重新将数据包加密并发送给后端服务器,这样在网络中就不存在任何的安全问题。

3. 服务保护

越来越多的数据和服务受到各种各样外界因素的威胁和攻击,特别是DoS和DDoS (Denial of Service-拒绝服务和

Distributed Denial of Service-分布式拒绝服务)攻击。因此,InChorus在进行流量管理的同时可以有另外一个角色,就是可以建立一系列的服务保护规则来保护服务免受这些恶意攻击。设置选项包括能够配置禁止和受信的IP地址,这样来自相应IP地址的访问请求将总是被禁止(或允许)。另外,用户也可以限制来自某一台机器或一组机器的连接数量,可以限制来自任一IP地址的连接rate,或者限制HTTP请求,例如是否必须严格遵循RFC2396标准。

通过和TrafficSmart智能流量管理语言编制的访问规则进行结合,用户还可以搜索或阻止其他一些干扰服务的因素,例如

已经被感染的数据包中的病毒特征数据。这样,InChorus不仅仅是一台能够进行流量管理和性能加速的设备,它还为用户的数据和服务提供了强大的安全性保障。

4. 访问日志:

可记录访问虚拟服务器的详细日志,可定义每个日志条目的文件名和文件格式;可记录源地址,被访问的服务器池和服务器节点以及发送和接收的字节数;可记录HTTP的特定选项,例如被请求的URL,特定包头的值以及HTTP的方法,等。 5. SmartCompress内容压缩

另外一个提升客户端到服务器(特别是基于因特网或广域网连接的)性能的方法就是进行数据压缩。在将响应信息发送到客户端时,InChorus可以压缩HTTP数据,不仅可以降低带宽的使用,还可以使基于低速连接传送大型WEB页面的性能得到提高。不是所有的浏览器都可以接收压缩内容,这一点在HTTP请求包的包头信息中就能够体现,InChorus可以智能地进行判断,仅是对可以接收压缩内容的浏览器发送压缩内容。

6.OptimalConnection 连接管理 InChorus除了具有上述特性外,还有一系列用于优化HTTP,FTP和UDP协议的连接管理选项,以及一些对于超时和内存使用的设置项。所有这些都可以应用到每一个虚拟服务器来管理每一种特定的协议。通常缺省设置已经足够了,但为了使应用更加灵活您可以设置这些选项。 服务器池

服务器池用来将后端服务器定义为一个逻辑组,每个后端服务器由服务器名和端口两个部分组成,例如

server1.bccb.com:80。一旦被定义,虚拟服务器将把连接请求指定给一个服务器池来处理,各个服务器节点将会负载均衡地处理连接请求。服务器池中的每一台服务器必须能够使用虚拟服务器指定的协议,通过指定端口来接收连接请求。除了实现负载均衡,每个服务器池还可以各自设置相应的会话保持或SSL加密方式。 服务器池的设置选项非常灵活,例如,在服务器池中可以设置一个优先级列表,这样用户就可以按照优先级来将服务器进行分组,可以在任何时候指定最小数量的服务器来接收连接请求。比如,用户有5台服务器,至少需要有2台服务器来同时处理连接请求,那么用户可以指定服务器1-3来接收日常流量,服务器4-5作为备用,平常不接收连接请求。当服务器1发生故障时,用户还有两台服务器来负载均衡地处理连接请求,如果此时服务器2也发生故障,这时就会只有一台服务器能够工作。此时,InChorus就会将备用服务器池中的一台切换到主服务器池中接

收连接请求,保证至少有2台服务器来同时处理连接请求,直到主服务器池中的服务器恢复正常。 可以对虚拟服务器进行以下进一步管理:

1. 选择负载均衡算法:

所有服务器池管理的基本原则就是其负载均衡的概念——要将负载智能地分布到所有的服务器。InChorus提供轮循、加权轮循、感知、最小连接数、最快响应时间、随机等多种负载均衡算法。

对于真实环境中的复杂流量,最适当的负载均衡算法应该是―感知‖算法;对于流量较小的环境,用户可以选择―最快响应时间‖算法;而选择最传统的―轮循‖算法则可以让连接平均分布。 精密的算法(感知,最小连接数,最快响应时间)都会考虑服务器缓存。后端服务器会将经常被访问的页面放入其缓存,如果一个新的请求来访问这一页面,InChorus 可以将请求发送到最近时间缓存这一页面的后端服务器,从而提高访问效率。

2. 会话保持

对于许多基于WEB的客户-服务器会话而言,保持从客户端到服务器的会话始终采用特定的路径是非常重要的——这通常被称为―粘性‖连接。为此InChorus提供了会话保持功能,可以保证来自同一客户端所有请求的会话将被发送到同一台后端的服务器进行处理,无论是采用哪种TCP协议。

提供静态WEB内容服务的服务器池一般没有会话保持的要求,即使每个页面或图象从不同的机器发送给客户也不会有什么问题。但是,对于类似在线购物的站点,就非常有必要提供会话保持来确保用户请求始终发送到那台保留有其购物筐详细信息的服务器。

InChorus提供了多种方法来鉴别来自同一会话的不同请求,会话保持可以使用多种多样的不同的cookies,可以基于访问规则,或者按照用户的IP地址来实现。如果进入的流量是经过SSL加密的,可以使用SSL会话标识来实现会话保持。

但是当产生无效的会话内容或保留会话的服务器发生故障时又会有新的问题,在这种情况下,用户可以选择关闭连接,将请求发送到另外一台服务器,或者将用户请求重定向到一个特定的URL,例如出错页面。

InChorus还具有一种―全局会话保持‖功能,使用脚本控制语言编制的访问规则可以萃取每个连接的所有独特的会话数据(源IP地址,用户代理,用户名,i-Mode标识等),并基于上述信息重新生成会话。

3. Draining Nodes

这也是InChorus的一项十分引人入胜的特性。很多时候,用户都可能有各种各样的原因需要服务器池中的正在工作的一

台或多台服务器离线,如打软件补丁,应用升级,等等,如果希望或者必须在正常工作时间来做这些工作,特别是对于那些需要服务器24x7x365持续工作的情况,这些工作将会带来一些问题,那就是,如果简单地让服务器立刻离线,那么该服务器正在处理的用户连接将全部丢失,对于某些应用或服务而言——特别是从用户的角度去看,这是不可接受的!正因如此,InChorus允许您将一台或多台服务器进行―drain‖操作,这时这些服务器将不再接受新的连接请求,等到现有连接关闭或会话超时之后再自动离线,此时,所有的用户请求将被发送到服务器池中的其他服务器去处理。在这种情况下,没有任何连接被丢失,这是一个的非常周全的解决方案。

4. 健康状况监控

为了能够检查后端网络各种元素的健康状况,InChorus 中包含了一系列的健康状况监控工具,这些工具可以被任何一个服务器池选择调用,每个工具执行一项特定的测试,从简单的向服务器发PING包,也可以复杂到检测服务器特定的端口是否打开,是否能够提供特定的数据服务,例如打开一个特定的页面。监控工具可以只对一台服务器,也可以应用于整个服务器池, 而且对于一台设备的健康检测往往就会反映出整个服务器池的健康状况。例如,一个邮件服务器池可能将其数据保存在一台后端服务器均可以访问的网络文件服务器上,一个应用于整个服务器池的监控工具可以测试这台服务器,如果这台服务器发生故障,那么所有后端服务器就无法从它上面取得数据,这时整个服务器池也被认为失效。这种模式不仅非常有效,同时立即切断了所有多余的网络管理流量。 TrafficSmart智能流量管理语言

TrafficSmart智能流量管理语言是InChorus的精髓所在,为使之成为真正灵活的工具,我们创建了流量控制脚本语言并用它来编辑访问规则。这些规则能够检测访问请求的所有方面,包括源/目的端口,源/目的IP地址,甚至流量的类型和实际的内容。流量控制脚本可以进行本地Xpath查询,并可以结合支持DTD和XSLT的XML流量控制,这些通常可用于基于SOAP协议的WEB服务,可以使复杂的数据进行自动转换和理解而无需用户干预。

InChorus在图形用户界面中提供了规则生成工具来指导用户生成流量控制脚本,当规则被创建后将被放置在规则目录中,任何虚拟服务器都可以任意调用规则目录中的任何规则。

这样,用户就逐渐建立了一个规则库,可以在任何需要的时候进行调用。因为InChorus可以无限制地进行内容检查,也就是可以阅读整个请求的内容并且可以利用请求信息中的任意一个参数来进行流量管理,随着规则库中的规则越来越多,使得InChorus成为一个十分强大的应用流量管理引擎。

目录

InChorus定义了一系列的目录。这些目录就是用于流量管理的对象的集中式的数据库。例如,一个目录中存放的是所有用户设置的访问规则,另一个目录中存放的是所有的健康监控工具。还有大量的目录是和SSL设置相关的(例如,服务器和客户端证书,认证许可以及认证撤消列表等)。这些目录都是可以被单独编辑,并可随时应用到任意一个虚拟服务器或服务器池。如果您编辑了目录中的一个条目,其设置的改变可以将被自动应用到所有使用这个条目的服务, 这大大降低了人为因素带来的问题,保证所有的配置是最新的而且是同步的。 应用加速和进程卸载

InChorus的关键不仅是对于流量的管理,还包括性能优化。方法之一就是采用一种通用的模式,既从服务器上卸载大量的TCP请求,转而由InChorus来处理。类似地,对于单独的应用,采用一种非介入的方式尽可能地增强已有方案的性能,这只需要一点点或完全不需要进行应用的整合。 InChorus无限的容错能力和可扩展性

为保证用户可以获得接近100%的持续在线时间,优势网络推出了多种自身设备的容错选择,远远超越了当前众多的同类产品。尤其是其独有的ClusterNG设备自身高可用技术,可以让用户获得近乎无限的冗余和可扩展性,它可以让用户建立一个设备数量多达64台的InChorus集群,而且可以将集群中的任意多台设备配置成在线的(Active);另外任意多台设备配置成备份的(Standby)或二级(secondly)设备。相比于那些只能提供简单的主备模式(active-standby)或双活模式(active-active)的对手来说,在竞争中处于极其优势的地位。

此外,在InChorus集群中增加新的InChorus设备非常简单,因为新的InChorus设备可以被已有的集群自动检测到,同时配置可以自动复制到该设备。这种独有的特性使用户可以用极低的成本构建和扩展系统(每次只需购买满足当时所需性能的InChorus即可,扩展的设备可以和原有设备同时工作,在保护原有投资的情况下扩展性能),同时非常的简单。 诊断(Diagnose)

用来检验明显的配置问题其根源何在,或者是简单地来证明所有的配置都是工作正常的。

可以在任何一个页面点击―诊断(Diagnose)‖按钮来查看当前的系统状态。

自检页面分成多个部分,可以清楚地识别哪些元素工作正常,哪些元素工作不正常,例如服务器池没有响应。 性能监控

1. 实时监控:

当前活动(Current Activity)监控页面为用户展示了系统当前活动流量的实时图形,有多个选项来选择需要查看哪些数据(例如每个节点的带宽),查看哪种形状的图形(线形图,饼图等),可以选择具体要监控哪些统计信息,而且可选范围极为广泛;可选择图形大小和监控时间段(分钟),可以将数据下载为.tsv(tab-separated variable)格式的文件进行分析,所有数据可以通过SNMP发送到外部。

2. 历史数据:

可查看过去30天活动流量的实时图形,可选择查看每秒点击数量或每秒处理的数据量,可按照每虚拟服务器/每服务器池或每个服务器节点选择查看,时间段可从1小时到30天之间选择;可选择图形大小和坐标类型,可以将数据下载为.tsv

(tab-separated variable)格式的文件进行分析,所有数据可以通过SNMP发送到外部。

3. 实时连接:

查看当前连接的详细信息,包括: 哪台InChorus交换机管理前连接

? ? ? ? ? ?

连接源地址 连接端口

连接目的地址 连接的状态

连接的虚拟服务器 使用的访问规则

? ? ? ? ? ? ?

连接的服务器池 重试次数

连接的客户端空闲时间 连接的服务器端空闲时间 接受到的客户端流量 发送到客户端的流量 连接建立的时间

等等。

本文来源:https://www.bwwdw.com/article/xqy8.html

Top