极
极核实验室
用了CDN反而更慢?一篇文章带你排查

用了CDN反而更慢?一篇文章带你排查

AI 摘要
CDN是内容分发网络,并非天然加速;未命中缓存需回源,链路更复杂,可能反而变慢。境外服务器面向全球含大陆时,应选中国大陆优化优先的CDN,并做分地区解析;其他场景通常无需特别优化。
包含显式广告和植入式广告 | 可用于自动化程序

授权转载声明

转载需先申请授权,并保留授权码、原文地址和文中 go/affiliate 链接。

原文地址:https://www.geekcorelab.com/post/why-cdn-makes-website-slower-troubleshooting-guide

商业链接是带授权追踪的 go 短链;转载页必须保留它,读者点击后会先记录来源再进入原文。

CDN 是什么?

首先,CDN并非是做加速的,CDN 的全称叫作 Content Delivery Network,中文名“内容分发网络”,和加速压根不沾边,那么为什么在互联网上,90% 的教程都在教你用 CDN 加速源站呢?

pasted_file_1794193470191.png

pasted_file_1794193552516.png

CDN 慢的根本原因

要分析为什么 CDN 慢了,首先我们要知道套上 CDN 之后发生了什么。

当一个访客请求网站时:

User -> CDN -> website

如果 CDN 正常缓存了内容,那么请求就会截止在 CDN 上直接发送给访客;但如果 CDN 没有缓存,那么 CDN 需要先请求你的源站,再把响应发给访客,此时 CDN 就在充当反向代理的角色。

同时,当加入 CDN 后,网络复杂度明显提升了,你的源站服务器很可能是 BGP 优化线路、CN2-GIA 优化线路等等,但 CDN 不一定,甚至 CDN 回源的路上也不一定能吃到线路优化。

这就导致,原本用户用 100ms 就成功连接了你的服务器,结果套上 CDN 后,用户先花费 200ms 连接到 CDN,CDN 再花费 200ms 去回源,网站性能不增反降

如何解决 CDN 速度慢的问题

首先,先确定你是什么情况:

境外:统指不受 GFW 限制的地区(含中国港澳台地)

  • 境外服务器免备案向全球提供服务(包含中国大陆)
  • 境外服务器免备案向境外提供服务
  • 中国大陆内服务器向全球提供服务

后两种情况几乎不需要任何特殊的优化操作,任何 CDN 的任何使用方式都可以获得不错的效果

如果是第一种情况,需要特别注意一下服务器的选择,比较推荐的是雨云的中国香港区域的服务器,三网混合或三网直连对国内更友好,同时能兼顾 Cloudflare 这种 CDN,填写优惠码 github 还能获得首月五折优惠。

pasted_file_1794194061174.png

对于第一种情况,选择 CDN 时尽可能遵循两个原则:

  • 中国大陆优化优先
  • 分地区解析

中国大陆优化优先

不久前,阿里云、腾讯云等厂商都在抄 Cloudflare 的 CDN+DNS 运营模式,但应为财力不足和设计师没用过 Cloudflare,他们分别设计出了一个被砍成“半个反向代理”的 CDN 以及一个“迷宫控制台”的管理页面。不过,对于国内加速,也是依然可以使用的

不过,如果你有一个喜欢的 DNS 服务商,将 DNS 不托管给 这里是好的(即通过 CNAME 接入而不是通过 NS 接入)

pasted_file_1794195661641.png

比如我就是给国内站点的域名解析接入了 Cloudflare 但是 CDN 使用阿里云 ESA。不过说到底,貌似对于阿里云来说,ESA 和 CDN 是两个东西

分地区解析

某些 DNS 服务商可以配置分线路解析,不过一定要选一个自己认为好的 DNS 提供商,我这里只是做演示

pasted_file_1794195925052.png

Cloudflare 貌似是不支持分线路解析的,也可能付费订阅是支持的,但是我没用过付费订阅,对于国内大部分厂商,在我的尝试下大多数支持分线路解析,在创建 DNS 记录时可以选择这样的字段:

pasted_file_1794196037909.png

当然也可以细分选择,不过免费版只能选到这个粒度,甚至

pasted_file_1794196081116.png

pasted_file_1794196095449.png

✨ 文章互动与表态

觉得这篇文章有帮助?为作者留下你的反馈吧

评论

参与讨论

请保持友善,共同维护良好的讨论环境。

邮箱不会公开展示。

正在加载...

支持 Markdown 语法。

讨论列表

0 条评论

内部链接图

正在读取当前文章的直接引用关系…

查看关联文章列表