提高网页响应速度:优化你的 CDN 性能

更新日期: 2020-05-01阅读: 2k标签: cdn

1.使用高性能 DNS

CDN 服务本身并不具备域名解析功能,而是依托于 DNS 智能解析功能,由 DNS 根据用户所在地、所用线路进行智能分配最合适的 CDN 服务节点,然后把缓存在该服务节点的静态缓存内容返回给用户。


如果域名转换为 IP 这一过程可用性低且延迟高,那么肯定会对 CDN 性能产生不良影响。

另外,请确保在 DNS 记录上使用较高的 TTL(生存时间),以便解析器可以长时间缓存记录。


2.将源点移到 CDN 附近

保持 CDN 与源之间的等待时间短暂,是 CDN 应对缓存未命中响应的有效的优化方法。

如果无法将源站点放在 CDN 附近,请考虑使用源防护(origin shield)。

Origin shield 是 CDN 和源之间的额外缓存层。origin shield 有助于减轻源点负担,它会在在源级别将来自多个 edge CDN 的传入请求折叠成一个请求,以加快缓存未命中响应的速度。

一个好的 origin shield 可以减少 70% 到 80% 的源负载,即使它前面有一个性能良好的 edge CDN。


3.具有 IPv6 连接

IPv6 能提高「网速」通常是指新建的 IPv6 网络通常具有更大的带宽(比如中国正在新建的 CERNET2 骨干网动辄 10Gbps、100Gbps 的连接带宽)、更好的流量控制、更少的 NAT 从而实现更高效的网络拓扑结构(IP 地址资源多从而不需要对数据包进行多次地址翻译和转发)。在这些方面 IPv6 确实是能提高「网速」的。

Facebook 已经对 IPv6 对性能的影响进行了大量研究,并得出了积极的效果:

我们已经观察到,与 IPv6 相比,访问 Facebook 的速度可以提高 10-15%。


4.调整您的 initcwnd

原始服务器上的初始拥塞窗口参数(initcwnd)的值可能为 10。这意味着服务器在第一次往返过程中通过新连接发送了 10 个数据包。

值为 10 不是不可以,但是更高的 initcwnd 可能会对 TCP 性能产生明显的积极影响,从而导致源和 CDN 之间的内容传输更快。

一些 CDN 的 initcwnd 为 10,其他 CDN 的值则高得多。

重要提示:请勿「简单的」的增加服务器上的 initcwnd 值并认为这样会很好。


    5. 让连接永远存活

    当 CDN 需要从您的源服务器中提取内容时,两个服务器之间必须存在 TCP 连接。

    理想情况下,该连接已经存在并且可以重复使用,从而节省了建立新的连接时的往返时间和宝贵的毫秒值。

    CDN 或源可能会终止连接,您无法控制 CDN 保持连接存活的时间,但是您可以控制源上的 keep-alive 行为。

    永远不要在源端关闭连接 - 担心许多 CDN 服务器与您的源点建立 TCP 连接并且该源无法处理该问题?设置一个 Origin shield。


    6. 减少 TLS 连接时间

    您有安全的 HTTPS 来源吗?如果是,可以执行几种优化来提高 CDN 性能。

    举个例子:TLS 错误启动,TLS 会话恢复和 TLS 记录大小优化。

    在开始使用这些 TLS 优化之前,请检查您的 CDN 是否需要其他方面的帮助,才能使这些优化生效。


      7. 最小化字节大小

      减少内容的字节大小或「权重」对于加快 CDN 性能非常有效。传输的字节越少,内容到达用户的速度就越快。

      您可以通过多种方法来最小化字节大小以增强 CDN 性能,压缩是最有效且通常最容易实现的方法。

      延伸阅读两篇减少字节大小的文章 minification 和 图像优化


      8. 成为缓存控制大师 - 强制缓存

      如何使 CDN 尽可能长时间地缓存对象并最大化缓存命中率?

      开箱即用,大多数或所有 CDN 都将遵循源服务器通过 Cache-Control 标头发送的缓存指令,这是提高 CDN 性能的非常有效的工具

      一些例子:
      Cache-Control: max-age=86400 告诉 CDN 和浏览器该对象可能被缓存 86400 秒。

      Cache-Control: max-age=3600, s-maxage=86400 通知 CDN 它可能将对象缓存 24 小时,而浏览器应将对象缓存不超过 1 小时。注意:s-maxage 默认情况下,并非所有 CDN `都支持。

      Cache-Control: max-age=86400, stale-while-revalidate=300 指示 CDN 和浏览器将对象缓存 24 小时,然后在这 24 小时结束时,当从原始位置获取新内容时,CDN 可以提供陈旧的响应长达 300 秒。

      推荐看本专栏这篇文章:彻底理解浏览器缓存机制


        9. 启用条件请求 - 协商缓存

        当 CDN 收到对过期对象的请求(在高速缓存中,但已过期)时,CDN 必须先联系源站点,然后再向用户发送响应。

        如果缓存的对象具有Last-Modified / ETag 标头,则 CDN 可以通过添加 If-Modified-Since / If-None-Match 标头来有条件地发起请求,源站点可以决定以轻量级 304 非修改响应(只有标头响应),还是以 200 OK 重新返回响应(标头和正文)。

        推荐看本专栏这篇文章:彻底理解浏览器缓存机制

        显然,304 非修改响应的性能要优于 200 OK 响应,因为响应的大小要小得多,因此 CDN 与源之间的往返次数更少。

        将原始服务器配置为始终发送 Last-Modified / ETag 标头,因为这大大有助于提高缓存的性能。


        10. 注意 Vary 标头

        你的源不应该向 CDN 提供带有诸如 Vary: Referer、Vary: User-Agent,Vary: Cookie 或 Vary: User-Agent,Cookie 标头,这些 Vary 标头对缓存命中率和 CDN 性能有很大的负面影响。

        重点:

        • 永远不要使用 Vary: *,具有该标头的对象将永远不会存储在 CDN 缓存中。
        • 始终发送 Vary: Accept-Encoding 带有(Gzip)压缩内容的标头。


        链接: https://fly63.com/article/detial/9115

        各个版本的jquery引用地址总结,jquery cdn公共库地址总汇

        jquery作为前端常使用的插件之一,一般我们不使用下载到本地引用,直接通过CDN 公共库来加载,这篇文章就总结各个版本的jquery引用地址。

        CDN与DNS知识汇总_CDN/DNS是什么?有什么好处?

        在性能优化的时候,比较常见的一个建议是,把资源部署在CDN上,那么问题来了,CDN是什么?这样做有什么好处?讲完DNS,现在可以开始讲CDN了,CDN的全称是Content Delivery Network,即内容分发网络

        vue.js的cdn引用地址有哪些?

        vue 是一套用于构建用户界面的渐进式框架。我们使用采用cdn的方式来引入vue,可以缓解我们服务器的压力,原理是将我们的压力分给其他服务器点。

        前端工程之CDN部署_前端为什么非要动静分离?说一下CDN托管的意义

        大型Web应用对速度的追求并没有止步于仅仅利用浏览器缓存,因为浏览器缓存始终只是为了提升二次访问的速度,对于首次访问的加速,我们需要从网络层面进行优化,最常见的手段就是CDN(Content Delivery Network,内容分发网络)加速

        什么是CDN缓存?CDN的入门了解

        CDN即内容分发网络,是指一种通过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。

        CDN的使用场景和操作细节

        随着互联网的发展,各种网络应用也雨后春笋般的发展,应用越做越大,访问路径越来越长,用户的访问质量受到严重的影响,特别是用户和网站之间的链路被突发的大流量数据拥堵、异地访问急需加速,减少网络费用等因素

        Vue项目构建持续集成阿里云CDN

        CDN加速是Web应用性能优化和用户体验提升的至关重要的一环,当一个项目构建部署时,就需要考虑到如何高效的去完成相关资源的CDN部署。以一个基于 vue-cli3 构建的项目实例,来简单讲解如何配合Teamcity

        网站防护选用高防CDN的优点

        网站防护选用高防CDN有下列好多个优点:合理防御力DDoS、CC进攻,ms级時间没有响应,智能导航相对路径派发,高品质髙速互联网配搭SSD储存更顺畅。私有高防连接点

        CDN(Content Delivery Network)原理

        分发服务系统,其基本的工作单元就是各个cache服务器。负责直接响应用户请求,将内容快速分发到用户;同时还负责内容更新,保证和源站内容同步。根据内容类型和服务种类的不同

        前端CDN库总汇

        CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定

        点击更多...

        内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!