论文部分内容阅读
随着Web应用范围的不断拓展,Web业务全球化越来越普及,移动Web业务更加成熟,Web负载均衡面临着更大的挑战。在可用性方面,Web业务访问量的日益飙升是负载均衡服务器面临的难题之一。另外,Web业务的多样性对负载均衡策略的灵活性提出更高要求。在安全方面,Web服务面临着各种各样攻击。负载均衡设备处于Web服务器集群的前端,需要具备基本的防御能力。本论文针对Web应用访问的高并发特性,采用支持会话保持的高效负载分流技术实现应用层负载均衡。整个负载均衡系统以代理形式工作,在应用层进行负载均衡调度。通过建立守护进程,设置工作进程的CPU亲和性,以及监控任务运行等手段均衡系统每个CPU的工作负荷,实现负载任务的整体划分,提高系统运行的可靠性。并且根据高内聚,低耦合的设计原则,将应用层负载均衡系统划分为连接管理,协议解析,缓存加速,安全过滤,健康监控,负载调度等功能模块。首先,连接管理模块实现客户端连接管理和服务器端连接复用的管理工作。一方面各工作进程可以比较均匀的分担客户端连接,另一方面复用服务器端连接可以避免频繁建立/关闭连接对系统的耗费。并且系统开启SYN Cookie功能清洗客户端连接,防御SYN Flood攻击。在深入分析HTTP协议规范后,选择使用有限状态机对HTTP报文进行协议解析,提取数据信息,为请求安全过滤和本地缓存提供参数依据。根据缓存加速的应用需求,通过开启Web缓存功能,对静态资源实现本地缓存响应,并根据LRU(Least Recently Used)算法和缓存生命周期淘汰本地缓存数据。在研究了常见的应用层Web攻击原理后,Web安全过滤模块采用匹配黑白名单规则的方法,防御应用层攻击和非法请求。对用户提交的数据信息根据不同类型采取不同措施,分别实现对文本数据的关键字过滤,对二进制数据的病毒扫描,以及对表单数据进行应用层攻击黑名单匹配。健康监控模块是独立于负载均衡系统运行的,但需要和负载均衡系统进行数据交互。经过多种健康检查方法的分析比较,选择使用HTTP GET方法获取服务器负载状况,进行间隔性的健康询问。既检测了Web服务器的可用性,又获取到了服务器的运行状态,方便负载均衡调度模块判断服务器是否可用,进行任务分配。负载调度模块主要解决的是应用层会话保持问题,使用简单会话保持方法,Cookie会话保持方法,或URI会话保持方法将隶属于一个会话的用户请求分配给同一个后台服务器完成处理,保证数据操作的一致性。最后通过系统集成测试结果证明负载均衡系统满足预期的功能需求,可以应用于需要使用缓存加速,或者Web安全过滤,或者应用层会话保持的应用场景,达到加速Web访问,防御应用层Web攻击,保证交易连贯,数据一致的目的。