CDN加速接入教程:阿里云CDN配置缓存规则+HTTPS证书+回源设置的步骤
阿里云CDN接入的核心是三件事:添加加速域名并完成CNAME解析、配好缓存规则与回源策略、再绑定HTTPS证书。顺序错了会反复返工,下面按实际控制台路径逐项说清。
接入前先想清楚:你到底需要缓存还是链路优化?
不是所有站点都该上 CDN。静态资源占比高、用户地域分散、源站带宽经常被打满的站,收益最明显;而后台管理、实时接口这类本就不该缓存的路径,接进来只会增加排错成本。比较稳妥的做法是把静态资源拆到独立子域名,比如 static.example.com,只给这个子域接 CDN,主站解析保持不动,出问题随时能回滚。子域拆分还有个好处:缓存规则可以写得激进,不用顾虑把动态页面也缓存进去。
加速域名怎么加?为什么 CNAME 必须先解析再去配别的?
控制台路径是:阿里云控制台 → 顶部搜索“CDN” → 域名管理 → 添加域名。需要填的主要是四项:
- 加速域名:只填域名本身,不带协议和路径;
- 业务类型:图片小文件、大文件下载、视音频点播、全站加速,选错主要影响调度策略,后续可以改;
- 加速区域:只服务国内用户就选“仅中国内地”,这种情况下域名需要有备案;
- 源站信息:源站类型可选 OSS 域名、IP、源站域名。建议填源站域名而不是 IP,将来换机器不用改 CDN;回源端口按源站实际填 80 或 443。
提交后控制台会给出一个 CNAME 值,形如 xxx.w.kunlunaq.com(每个账号不同,以控制台显示为准)。然后到解析服务商那边添加:阿里云云解析 DNS → 目标域名 → 解析设置 → 添加记录,记录类型选 CNAME,主机记录填子域名前缀,记录值填刚才那串。
为什么强调先做完这一步:CDN 要探测到 CNAME 生效才会去回源校验,在此之前你改缓存、传证书都看不到真实效果,很容易误判成“配置没生效”。
缓存规则怎么设?哪些该缓存、哪些必须放过?
进入 域名管理 → 选中域名 → 缓存配置 → 缓存过期时间 → 添加规则。规则按目录、文件后缀、全路径三类匹配,优先级大致是目录 > 后缀 > 全局,同层级取权重大的那条。
一个常见的分层思路:
| 资源类型 | 建议过期时间 | 说明 |
|---|---|---|
.css .js .jpg .png .webp |
约 30 天 | 配合文件名带 hash,发版即换名 |
.html |
0(不缓存) | 或设很短,避免整站更新后读到旧页面 |
/api/、登录、支付类路径 |
不缓存或遵循源站 | 用目录规则单独放过,别被全局规则吃掉 |
| 安装包、视频切片等大文件 | 数天到数月 | 配合 Range 回源使用 |
还要顺手决定“忽略参数”策略:默认忽略所有参数,会把 a.jpg?v=1 和 a.jpg?v=2 当成同一份缓存;如果你的站靠参数区分内容,就改成保留指定参数,把 v、version 这类写进去。这一步不做,后面会出现“明明改了图却还是旧的”这类假故障。
回源设置里 host、协议、端口分别填什么?
回源配置在 域名管理 → 回源配置。三个字段最容易填错:
- 回源 host:默认与加速域名一致。如果源站上跑着多个站点、靠域名区分虚拟主机,这里必须填源站真正认的那个域名,否则回源会 404,或者落到默认站点上返回别人的页面。
- 回源协议:源站没有证书就选 HTTP,源站有证书且希望全链路加密选 HTTPS,不确定就选“跟随”。
- 回源端口:与协议对应,HTTP 通常 80,HTTPS 通常 443;源站改过端口就按实际填。
源站可以填多个,配置主备或按权重分流。大文件下载场景建议打开 Range 回源,支持分片拉取,断点续传体验会好很多;同时把回源超时和重试次数按源站的真实响应速度调一下,源站慢的时候别急着判失败。
HTTPS 证书用免费的还是自有的?绑完还要做什么?
路径是 域名管理 → HTTPS 配置 → 修改配置。证书来源两条路:一是申请阿里云的免费 DV 证书,适合单域名、没有通配需求的小站;二是上传自有证书,通配符域名、企业 OV/EV 证书走这条。选哪条取决于你要覆盖几个子域,而不是证书本身贵不贵。
绑定时要同时选对证书和私钥,证书链不全会导致部分安卓机或旧浏览器提示不受信任。开启之后建议顺手打开“强制跳转 HTTPS”,把 HTTP 请求 301 到 HTTPS,避免同页混用资源。TLS 版本保留 1.2 及以上;HTTP/2 对静态资源并发有好处,但确认源站和回退逻辑都支持再开。
配完怎么验证?命中率和报错怎么查?
命令行是最快的验证手段:
dig static.example.com CNAME +short # 确认解析已指向 CDN
curl -I https://static.example.com/a.jpg # 看响应头中的缓存状态
响应头里 X-Cache 显示 HIT 表示命中了边缘节点,MISS 表示这次走了回源;X-Swift-CacheTime 是剩余缓存时间。同一 URL 连续请求几次,第二次仍然是 MISS,基本就是缓存规则没匹配上,或者被某条“不缓存”的规则覆盖了。
常见故障对应关系:访问 404 大多是回源 host 填错;页面不更新先确认是不是命中了缓存,需要立刻生效就去 CDN → 刷新预热 → 提交 URL 刷新或目录刷新,注意目录刷新会触发大量回源,流量高峰期慎用;证书报错优先检查证书链和绑定域名是否一致;跨域失败要在 CDN 侧加响应头,改源站没用。
最后看监控:域名管理 → 监控查询,关注流量、带宽、回源带宽和缓存命中率。命中率长期偏低,先回去改缓存规则,而不是急着扩带宽。