直接说“写配置”其实有点笼统,因为绝大多数主流的 CDN 服务商(例如 Cloudflare, AWS CloudFront, 阿里云 CDN 等)都提供了图形化的网页控制台,你不需要像写代码一样去“写”配置文件。整个过程更多的是在网页上进行一系列的设置。
**CDN (Content Delivery Network, 内容分发网络)**:它是一个由分布在全球各地的服务器组成的网络。它的核心作用是把你的网站内容(比如图片、CSS 文件、JS 文件,甚至整个网页)缓存到离用户最近的服务器上。
配置的核心思想:配置 CDN 的本质,就是告诉 CDN 两件大事:
- “我的货在哪?” —— 也就是你的 源站 (Origin Server) 在哪里。CDN 需要知道去哪里获取你的原始文件。
- “我的货该怎么送?” —— 也就是定义一系列规则,比如哪些内容需要缓存、缓存多久、谁可以访问、如何保证安全等等。
假设你已经注册了一家 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
。
- IP 源:直接填写你服务器的公网 IP 地址。例如
- 端口:你的 Web 服务器(如 Nginx, Apache)监听的端口,HTTP 默认是 80,HTTPS 默认是 443。
- **回源 Host 头 (Origin Host Header)**:这是一个非常重要但容易被忽略的配置。
- 它是什么?:当 CDN 的边缘节点向你的源站请求内容时,它发送的 HTTP 请求里会包含一个
Host
头。这个头告诉你的源服务器,“我想要的是哪个网站的内容?”。 - 例如:你的源站服务器上可能同时托管了
a.com
和b.com
两个网站。如果Host
头是a.com
,Nginx 就会返回a.com
的内容。 - 如何配置:通常,你应该将回源 Host 头设置为你正在加速的那个域名,也就是
www.my-awesome-app.com
。这样能确保源站能正确响应。
- 它是什么?:当 CDN 的边缘节点向你的源站请求内容时,它发送的 HTTP 请求里会包含一个
- 源站类型:通常是 IP 源或域名源。
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 返回的数据通常是动态的、个性化的,绝对不能被缓存。
- 路径/类型:
- 规则 1:
- 缓存行为:你还可以定义是否忽略 URL 中的查询参数(例如
?version=1.2
)。对于静态资源,通常建议“忽略所有参数”进行缓存,这样style.css?v=1
和style.css?v=2
会被视为同一个文件,提高缓存命中率。
- 例如,你可以这样配置:
4. 配置 HTTPS (保证安全)
现在所有网站都应该是 HTTPS 的。你需要为你的 CDN 加速域名配置 SSL/TLS 证书。
- 常见的选项:
- 免费通用证书:绝大多数 CDN 服务商(如 Cloudflare)会自动提供免费的 SSL 证书,这是最简单方便的选择。
- 上传自有证书:如果你有自己购买的证书,也可以上传到 CDN 控制台。
- SSL 模式:这是一个关于“CDN 到源站”连接安全性的重要设置。
- Flexible (灵活):用户 -> CDN 是加密的,但 CDN -> 源站 是不加密的 (HTTP)。不推荐,不安全。
- Full (完全):用户 -> CDN 是加密的,CDN -> 源站 也是加密的,但 CDN 不会验证你源站证书的有效性(例如,允许自签名证书)。
- Full (Strict) (完全-严格):两端都加密,并且 CDN 会严格验证你的源站拥有一个有效的、受信任的 SSL 证书。这是最安全、最推荐的模式。
5. 切换 DNS,正式启用 CDN
当你完成以上所有配置并保存后,CDN 服务商会提供给你一个专属的 CNAME 地址。
CDN 服务商会给你一个 CNAME 地址,例如
www.my-awesome-app.com.cdn.cloudflare.net
。登录你的域名注册商(例如 GoDaddy, NameSilo, 腾讯云/阿里云的域名服务)。
找到
www.my-awesome-app.com
这条域名的 DNS 解析设置。将其记录类型从
A
修改为CNAME
,并将记录值指向 CDN 提供给你的那个地址。保存设置。DNS 更新通常需要几分钟到几小时才能全球生效。