门户网站Web及应用服务器加速及负载均衡方案门户网站结构的改造目前,比较流行的门户网站结构一般分为3层,第一层是服务器或反向代理服务器,负责处理静态内容;第二层是应用服务器,负责处理后台程序;第三层是数据库,负责存放网站数据。通常,一个较大的门户网站用户人群都在几百万以上。根据总结出的经验值,同时在线的用户一般最多为5%,同一时刻更新页面的用户最多为1%,每个页面请求20个文件,则一个用户人群是300万的网站,同一时刻最大的http请求数为:300万×5%×1%×20=30000次。我们知道,一台用apache做web服务的PCServer一般同一时刻能承受约2500次的http请求,因此,一个用户人群是300万的网站需要的web服务器的数量为:30000/2500=12台。除了第一层的web服务器,为了提高后台程序的工作效率,网站还使用专门的应用服务器提供应用程序服务以及页面发布服务,使用专门的数据库服务器,实现后台应用的数据库驱动并提供统一用户认证服务。同样,各种应用服务器也将根据实际的应用处理能力需要配置多台且能够同时提供应用服务。要让多台web服务器和应用服务器负载均衡地同时对外提供服务,最好的解决方案就是采用4/7层交换设备,而优势网络(AsceNetworks)公司的InChorus应用前端交换机就是门户网站的最佳选择。优势网络(AsceNetworks)的InChorus的核心是技术十分成熟的Web交换机(第四到第七层交换),它是在单一集成式业务平台上提供高可用性和安全性的新一代网络应用交换机。当传统的4/7交换器还在做所谓的服务器负载均衡时,AsceNetworks却已经看到了客户目前已经快速发展和变化的应用需求,甚至客户不断发展的未来的需要。InChorus强调的不只是服务器负载平衡,它优异的功能包括智能内容交换、应用加速、数据压缩、TCPoffload、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(DenialofService-拒绝服务和DistributedDenialofService-分布式拒绝服务)攻击。因此,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.DrainingNodes这也是InChorus的一项十分引人入胜的特性。很多时候,用户都可能有各种各样的原因需要服务器池中的正在工作的一台或多台服务器离线,如打软件补丁,应用升级,等等,如果希望或者必须在正常工作时间来做这些工作,特别是对于那些需要服务器24x7x365持续工作的情况,这些工作将会带来一些问题,那就是,如果简单地让服务器立刻离线,那么该服务器正在处理的用户连接将全部丢失,对于某些应用或服务而言——特别是从用户的角度去看,这是不可接受的!正因如此,InChorus允许您将一台或多台服务器进行“drain”操作,这时这些服务器将不再接受新的连接请求,等到现有连接关闭或会话超时之后再自动离线,此时,所有的用户请求将被发送到服务器池中的其他服务器去处理。在这种情况下,没有任何连接被丢失,这是一个的非常周全的解决方案。4.健康状况监控为了能够检查后端网络各种元素的健康状况,InChorus中包含了一系列的健康状况监控工具,这些工具可以被任何一个服务器池选择调用,每个工具执行一项特定的测试,从简单的向服务器发PING包,也可以复杂到检测服务器特定的端口是否打开,是否能够提供特定的数据服务,例如打开一个特定的页面。监控工具可以只对一台服务器,也可以应用于整个服务器池,而且对于一台设备的健康检测往往就会反映出整个服务器池的健康状况。例如,一个邮件服务器池可能将其数据保存在一台后端服务器均可以访问的网络文件服务器上,一个应用于整个服务器池的监控工具可以测试这台服务器,如果这台服务器发生故障,那么所有后端服务器就无法从它上面取得数据,这时整个服务器池也被认为失效。这种模式不仅非常有效,同时立即切断了所有多余的网络管理流量。TrafficSmart智能流量管理语言TrafficSmart智能流量管理语言是InChorus的精髓所在,为使之成为真正灵活的工具,我们创建了流量控制脚本语言并用它来编辑访问规则。这些规则能够检测访问请求的所有方面,包括源/目的端口,源/目的IP地址,甚至流量的类型和实际的内容。流量控制脚本可以进行本地Xpath查询,并可以结合支持DTD和XSLT的XML流量控制,这些通常可用于基于SOAP协