0%

CDN Config

直接说“写配置”其实有点笼统,因为绝大多数主流的 CDN 服务商(例如 Cloudflare, AWS CloudFront, 阿里云 CDN 等)都提供了图形化的网页控制台,你不需要像写代码一样去“写”配置文件。整个过程更多的是在网页上进行一系列的设置。

**CDN (Content Delivery Network, 内容分发网络)**:它是一个由分布在全球各地的服务器组成的网络。它的核心作用是把你的网站内容(比如图片、CSS 文件、JS 文件,甚至整个网页)缓存到离用户最近的服务器上。

配置的核心思想:配置 CDN 的本质,就是告诉 CDN 两件大事:

  1. “我的货在哪?” —— 也就是你的 源站 (Origin Server) 在哪里。CDN 需要知道去哪里获取你的原始文件。
  2. “我的货该怎么送?” —— 也就是定义一系列规则,比如哪些内容需要缓存、缓存多久、谁可以访问、如何保证安全等等。

假设你已经注册了一家 CDN 服务商的账号。

1. 添加你的域名

这是所有配置的第一步。你需要告诉 CDN 服务商,你要为哪个网站或服务加速。

  • 操作:在 CDN 控制台里,找到“添加站点”或“添加域名”的入口。
  • 例如:输入你要加速的域名,比如 www.my-awesome-app.com

2. 配置源站信息 (最关键的一步)

CDN 必须知道去哪里拿你的“原版”内容,这个过程我们称之为 **回源 (Back-to-Origin)**。

  • 源站 (Origin Server)
    • 就是你网站内容真正存放的服务器。它可以是一个 IP 地址,也可以是另一个域名。
  • 配置项通常包括:
    • 源站类型:通常是 IP 源或域名源。
      • IP 源:直接填写你服务器的公网 IP 地址。例如 12.34.56.78
      • 域名源:填写一个可以直接访问到你服务器的域名。例如 origin.my-awesome-app.com
    • 端口:你的 Web 服务器(如 Nginx, Apache)监听的端口,HTTP 默认是 80,HTTPS 默认是 443。
    • **回源 Host 头 (Origin Host Header)**:这是一个非常重要但容易被忽略的配置。
      • 它是什么?:当 CDN 的边缘节点向你的源站请求内容时,它发送的 HTTP 请求里会包含一个 Host 头。这个头告诉你的源服务器,“我想要的是哪个网站的内容?”。
      • 例如:你的源站服务器上可能同时托管了 a.comb.com 两个网站。如果 Host 头是 a.com,Nginx 就会返回 a.com 的内容。
      • 如何配置:通常,你应该将回源 Host 头设置为你正在加速的那个域名,也就是 www.my-awesome-app.com。这样能确保源站能正确响应。

3. 配置缓存规则 (提升性能的核心)

这里决定了 CDN 的性能表现。你需要告诉 CDN 的边缘节点,哪些内容可以缓存,以及缓存多久。

  • 名词解释:TTL (Time-To-Live, 生存时间)
    • 指缓存内容在边缘节点上存放的时间。过了这个时间,缓存就“过期”了,CDN 会重新回源去获取最新的内容。
  • 常见的配置方式:基于文件路径或后缀名来设置不同的 TTL。
    • 例如,你可以这样配置:
      • 规则 1
        • 路径/类型: *.jpg, *.jpeg, *.png, *.gif, *.css, *.js (所有图片、CSS 和 JS 文件)
        • TTL: 7 天30 天。因为这些静态资源通常不怎么变化,可以设置很长的缓存时间来最大化性能。
      • 规则 2
        • 路径/类型: /index.html (主页)
        • TTL: 10 分钟。因为主页内容可能会更新,但又不像 API 那样频繁,设置一个较短的缓存时间。
      • 规则 3
        • 路径/类型: /api/* (所有 API 请求)
        • TTL: 0 秒 或设置为 “不缓存”。因为 API 返回的数据通常是动态的、个性化的,绝对不能被缓存。
    • 缓存行为:你还可以定义是否忽略 URL 中的查询参数(例如 ?version=1.2)。对于静态资源,通常建议“忽略所有参数”进行缓存,这样 style.css?v=1style.css?v=2 会被视为同一个文件,提高缓存命中率。

4. 配置 HTTPS (保证安全)

现在所有网站都应该是 HTTPS 的。你需要为你的 CDN 加速域名配置 SSL/TLS 证书。

  • 常见的选项:
    1. 免费通用证书:绝大多数 CDN 服务商(如 Cloudflare)会自动提供免费的 SSL 证书,这是最简单方便的选择。
    2. 上传自有证书:如果你有自己购买的证书,也可以上传到 CDN 控制台。
  • SSL 模式:这是一个关于“CDN 到源站”连接安全性的重要设置。
    • Flexible (灵活):用户 -> CDN 是加密的,但 CDN -> 源站 是不加密的 (HTTP)。不推荐,不安全。
    • Full (完全):用户 -> CDN 是加密的,CDN -> 源站 也是加密的,但 CDN 不会验证你源站证书的有效性(例如,允许自签名证书)。
    • Full (Strict) (完全-严格):两端都加密,并且 CDN 会严格验证你的源站拥有一个有效的、受信任的 SSL 证书。这是最安全、最推荐的模式。

5. 切换 DNS,正式启用 CDN

当你完成以上所有配置并保存后,CDN 服务商会提供给你一个专属的 CNAME 地址。

  1. CDN 服务商会给你一个 CNAME 地址,例如 www.my-awesome-app.com.cdn.cloudflare.net

  2. 登录你的域名注册商(例如 GoDaddy, NameSilo, 腾讯云/阿里云的域名服务)。

  3. 找到 www.my-awesome-app.com 这条域名的 DNS 解析设置。

  4. 将其记录类型从 A 修改为 CNAME,并将记录值指向 CDN 提供给你的那个地址。

  5. 保存设置。DNS 更新通常需要几分钟到几小时才能全球生效。