CDN 加速

CDN 加速:接入、缓存与回源

将图片、样式和脚本交给边缘节点交付,减少重复回源。域名实验室支持节点调度、静态资源缓存与指定动态路径缓存;填好源站、开启 CDN 并保存配置后,系统下发节点设置,按项目源站完成回源。

接入前,先确认源站与 HTTPS

  1. 源站可以正常响应。确认回源地址、协议和端口正确,源站防火墙允许必要的访问;回源地址不要再次指向同一 CDN 入口,以免形成循环。
  2. 域名解析指向正确入口。按项目要求配置 DNS,清理冲突记录,并核对实际解析结果。
  3. 分别检查两段 HTTPS。浏览器到边缘节点、边缘节点到源站是不同连接。使用 HTTPS 回源时,源站的证书与请求主机名也需要匹配。

先区分公共资源与个性化响应

按内容用途选择缓存策略
内容建议
图片、字体、CSS、JavaScript适合缓存;用带版本号的文件名配合更新。
公开且所有访客一致的页面或接口确认响应差异后,再按路径配置缓存与有效期。
登录、账户、订单及鉴权接口配置为不缓存,避免共享用户专属内容。

是否可缓存取决于实际响应,不能只看文件后缀。带查询参数的请求也可能返回不同内容,需要确认缓存规则能正确区分。

把 Cache-Control 与 Cookie 边界写清楚

先使用默认配置验证公共静态资源,再按需要调整 TTL、路径排除、Cookie 处理和 Cache-Control 策略。更新越频繁的内容,越需要考虑有效期与刷新方式。

源站的 Cache-Control: private 表示响应面向单个用户;no-store 表示不应存储。不要用宽泛的强制缓存规则覆盖这些业务意图。携带登录 Cookie、Authorization 或返回 Set-Cookie 的响应,应先核实其用途与排除规则,再决定能否缓存。

用真实请求验证缓存是否生效

  1. 选一个允许缓存的公共文件,连续请求同一个完整 URL,检查响应状态、响应头与内容。
  2. 结合实际返回的缓存标识、Age 等响应头及源站访问日志,判断后续请求是否减少回源;不同节点可能各自经历首次回源。
  3. 分别测试未登录和登录状态,确认账户与订单内容不被共享,再检查资源更新和刷新后的结果。

可将下列示例地址替换为自己的文件,以 GET 请求查看响应头:

curl -sS -D - -o /dev/null https://cdn.example.com/assets/app.css

单次加载变快不能单独证明命中缓存;浏览器本地缓存也会影响观测。

按故障出现的位置排查

  • 域名打不开:先查 DNS 是否生效,再查入口与源站连通性。
  • 证书错误或跳转循环:检查证书主机名、回源协议及源站跳转规则。
  • 持续回源:核对路径排除、有效期、Cookie 与源站缓存响应头。
  • 内容没有更新:区分浏览器与边缘缓存,再按 URL 或路径刷新,必要时更换资源版本。

常见问题

开启 CDN 后,所有访问都会更快吗?

效果取决于用户位置、节点、网络、源站和缓存规则。首次请求、不可缓存内容及需要回源的请求,仍受源站响应影响,应以实际业务测试为准。

动态页面可以缓存吗?

支持指定动态路径缓存,但应先确认响应是否面向所有访客一致。登录、账户和订单等个性化内容应排除,不能只按“动态”或“静态”的名称判断。

如何查看 CDN 的费用?

具体可选配置、计费条件与费用以控制台展示为准。先明确源站、访问方式和缓存需求,再选择适合的项目配置。