使用内容交付网络 (CDN) 的优点和缺点是啥? [关闭]

Posted

技术标签:

【中文标题】使用内容交付网络 (CDN) 的优点和缺点是啥? [关闭]【英文标题】:What are the advantages and disadvantages of using a content delivery network (CDN)? [closed]使用内容交付网络 (CDN) 的优点和缺点是什么? [关闭] 【发布时间】:2011-01-09 20:35:21 【问题描述】:

我正在通过Best Practices for Speeding Up Your Web Site from developer site of Yahoo...

使用content delivery network (CDN) 有哪些优点和缺点?

何时使用 CDN?

CDN 是性能提升器吗?

【问题讨论】:

【参考方案1】:

使用内容分发网络 (CDN) 的优缺点是什么?

缺点可能是要花钱,而且会增加部署过程的一些复杂性。

主要优势是提高了将内容交付给用户的速度。

何时使用 CDN?

当您拥有一个具有某种类型静态内容(图像、脚本、CSS 等)的流行公共网站时,这将是最有效的。

CDN 是性能提升器吗?

一般来说,是的。当用户提出特定请求时,将动态确定最接近该用户的服务器(根据服务器和用户之间的最小节点数)。这样可以优化向该用户交付内容的速度。

【讨论】:

各有利弊。这取决于您的特定站点。例如,对于仅使用 jQuery 和一些自定义脚本的小型站点,则使用 CDN。但是,如果您有很多带有自定义 Bootstrap 的库,而您不想要每个 Bootstrap js 插件,那么不要使用 CDN。将您所有的 js/css 合并到一个文件中,以实现更好的压缩,这可能会导致更快的下载速度和页面渲染。测试每个场景 - CDN/No-CDN,每个都有缓存和没有缓存,看看哪个更快。使用 FF/Chrome 网络工具测试每个工具的性能。【参考方案2】:

如果大量内容来自 CDN,CDN 就是性能提升器。

通常您每次都有两个连接来获取每个域的内容 所以每个项目都是一个连接。

如果您在 CDN 上拥有来自其他域的内容,您的网站就有更多连接,并且您的网站加载速度会更快。

我通常将 CDN 用于 javascript 库,并且仅在我信任 CDN 的情况下使用 并检查您要使用的 CDN 的正常运行时间。

【讨论】:

【参考方案3】:

另一个需要考虑的事项(最近被推到我们身上):您的客户可能会阻止 CDN!我正在使用 Microsoft 的 jQuery CDN,去年秋天我们从 microsoft.com 主机名更改为 ajax.aspnetcdn.com(以避免下载 jQuery 时不需要的 cookie)。从那以后,我们有几个客户的网络过滤器阻止了 aspnetcdn.com,不得不手动将其列入白名单。

我们将继续使用 CDN,但它让我们看到了它可能导致的另一个问题。

【讨论】:

需要注意的非常重要的事情。 更新:我们不得不停止使用 CDN 并返回自己托管 jQuery,因为近十几个客户阻止了它。 这也发生在我的工作中(我不应该命名的主要网站)。 考虑在没有配置 *** 的情况下无法访问 Google 的中国用户。 @n8wrl 感谢分享您的案例!【参考方案4】:

每个 CDN 提供商都不同,但您应该真正了解他们的网络以及它可能如何影响您的目标受众,尤其是如果您的网站受众主要集中在世界某个地方。

在我们的测试中,我们发现大多数用户(取决于他们从哪个 ISP 连接)没有看到任何性能优势,因为我们正在研究使用的 CDN 提供商没有与他们的上游提供商配对。数据包没有沿着“主管”路由,如果我们继续前进,性能将会下降。

话虽如此,上述情况可能并不常见,但测试仍然是个好主意。使用来自 CDN 的资源构建您的网站版本,并在不同的语言环境和不同的连接上进行测试并衡量结果。

还有其他好处;浏览器利用多个域,同时请求更多,服务器负载更少等。一般来说,CDN 是一个不错的选择。

【讨论】:

以上是关于使用内容交付网络 (CDN) 的优点和缺点是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用CDN

CDN是啥?

如何让 ng-include 指令与内容交付网络一起使用?

CDN节点是啥

CDN内容分发网络的工作原理和解释

cdn服务器是啥