我在阅读一篇关于 Web 应用程序配置的文章时,遇到了一个概念网络加速器,但阅读功能列表似乎它提供了我要求 CDN 甚至某些 Web 服务器配置提供的大部分功能。
网络加速器是一种减少网站访问时间的代理服务器。
它提供:
- 缓存最近或经常访问的文档,以便它们可以以比远程服务器更少的延迟或更快的传输速率发送到客户端。
- 更新缓存中的对象,确保经常访问的内容可以随时显示。
- 预先解析文档(HTML 或 JavaScript)中存在的主机名以减少延迟。预取可能在不久的将来访问的文档。将文档压缩为较小的尺寸,例如通过降低图像质量或仅发送自上次请求文档以来发生的更改的内容。
- 优化某些文档(例如 HTML 或 JavaScript)的代码。
- 过滤掉广告和其他不良内容,以便根本不会将它们发送给客户端。
- 维持客户端和代理服务器之间的持久 TCP 连接。
- 通过协议级加速(例如 TCP 加速)来提高性能。
现在如果你问我,我会考虑以下组件并赋予它们上述职责:
内容分发网络 (CDN): (1)(2)
负载均衡器: (5)(7)
反向代理: (1)(2)(4)(6)(7)
虽然我可能没有完全正确地对上述职责分配进行分类,但看起来网络加速器可以是 CDN、LB 甚至是反向代理。
有人能告诉我这种组件的独特之处和最佳用例吗?Web 加速器如何适应具有 CDN、LB 和/或反向代理的模型?
答案1
您说得对:网络加速器是一种概念技术,可以独立使用,也可以作为商业 CDN 的一部分、自主研发 CDN 的一部分,甚至可以作为客户端安装的一部分使用。
不存在真正的 Web 加速器实现,它是一种技术类别。例如,即时压缩/解压缩、比原始服务器更靠近用户的 HTTP 缓存,可减少或消除处理时间,以及其他一些技术。
CDN 将使用这些技术的几个示例来整合他们认为可以出售给客户的正确类型的网络加速。
答案2
网络加速器可以是 CDN,但是非常简单。
这维基百科定义CDN 为:
大型分布式系统服务器部署于多个数据中心通过互联网
而网络加速器的定义是:
A (一) 代理服务器,减少网站访问时间
CDN 实际上是一个网络,其主要功能是优化对大量请求内容的访问,通常为大型公司提供服务。它通过以下方式实现此目的:
- 遍布全球的多个本地数据中心减少了消息传输时间
- 负载划分减少拥塞
- 可以使用更多的数据中心来为遇到意外请求高峰(或拒绝服务攻击)的网站提供服务。
CDN 中的每个服务器实际上都是一个 Web 加速器,CDN 网络包含确保所有服务器中的所有内容都是最新的逻辑。CDN 可以看作是 Web 加速器的森林。
最知名的 CDN 之一是阿卡迈,拥有庞大的客户名单,包括 Adobe、Apple、IBM Corp.、Microsoft、Yahoo! 等。由于其庞大的全球网络,其客户始终能够抵御所有企图发起的拒绝服务攻击。