读者福利!2TB各类技术资源免费赠送
文章介绍了典型的,三层架构的高性能Web应用架构,并对反向代理服务,应用层节点工作模型,Memcached服务等做了详细的解释,希望能对您有所帮助。典型WebApp架构以下是一个典型的高负载web应用示例:
上图展示了一个典型的,三层架构的高性能Web应用。这种成熟的架构多年以来已被广泛部署于包括Google、Yahoo、Facebook、Twitter、Wikipedia在内的诸多大型Web应用中。反向代理服务
位于三层构架中最外层的反向代理服务器负责接受用户的接入请求,在实际应用中,代理服务器通常至少还要完成以下列表中的一部分任务:
连接管理:分别维护客户端和应用服务器的连接池,管理并关闭已超时的长连接。
攻击检测和安全隔离:由于反向代理服务无需完成任何动态页面生成任务,所有与业务逻辑相关的请求都转发至后端应用服务器处理。因此反向代理服务几乎不会被应用程序设计或后端数据漏洞所影响。反向代理的安全性和可靠性通常仅取决于产品本身。在应用服务的前端部署反向代理服务器可以有效地在后端应用和远程用户间建立起一套可靠的安全隔离和攻击检测机制。
如果需要的话,还可以通过在外网、反向代理、后端应用和数据库等边界位置添加额外的硬件防火墙等网络隔离设备来实现更高的安全性保证。
负载均衡:通常使用轮转(RoundRobin)或最少连接数优先等策略完成基于客户请求的负载均衡;也可以使用SSI等技术将一个客户请求拆分成若干并行计算部分分别提交到多个应用服务器。
分布式的cache加速:可以将反向代理分组部署在距离热点地区地理位置较近的网络边界上。通过在位于客户较近的位置提供缓冲服务来加速网络应用。这实际上就构成了CDN网络。
静态文件伺服:当收到静态文件请求时,直接返回该文件而无需将该请求提交至后端应用服务器。
动态响应缓存:对一段时间内不会发生改变的动态生成响应进行缓存,避免后端应用服务器频繁执行重复查询和计算。
数据压缩传输:为返回的数据启用GZIP/ZLIB压缩算法以节约带宽。
数据加密保护(SSLOffloading):为与客户端的通信启用SSL/TLS加密保护。
容错:跟踪后端应用服务器的健康状况,避免将请求调度到发生故障的服务器。
用户鉴权:完成用户登陆和会话建立等工作。
URL别名:对外建立统一的url别名信息,屏蔽真实位置。
应用混搭:通过SSI和URL映射技术将不同的web应用混搭在一起。
协议转换:为使用SCGI和FastCGI等协议的后端应用提供协议转换服务。
目前比较有名的反向代理服务包括:Apache