CDN 是什么
内容分发网络把静态资源缓存到离用户更近的边缘节点:用户就近访问,回源压力与源站带宽都明显下降。它的关键不在开通,而在缓存规则:哪些文件缓存、缓存多久、用什么作为缓存键、更新时如何刷新,规则配错的代价往往比不用还大。
基本信息
| 基本原理 | 边缘节点命中缓存直接响应,未命中时回源拉取并缓存 |
|---|---|
| 三厂名称 | 阿里云 CDN、腾讯云 CDN、华为云 CDN |
| 关键配置 | 缓存规则、缓存键、回源配置、预热与刷新、访问控制 |
| 典型场景 | 静态资源、图片视频、下载分发、全站加速 |
| 回源方式 | 源站地址可为地址域名、对象存储或负载均衡入口 |
| 日志与统计 | 可查看命中率、回源带宽与状态码分布 |
典型使用场景
- 静态资源加速:前端构建产物与图片走缓存,源站只承担回源请求
- 视频与下载:大文件分发用边缘节点承载,显著降低源站带宽成本
- 跨地域访问:用户分布广时,就近节点能明显改善首屏与下载速度
- 抗突发流量:活动期间由边缘节点承接主要流量,源站压力可控
- 降低源站暴露面:源站只允许回源地址访问,收窄攻击面
- 动态内容优化:通过回源策略与协议优化改善动态请求的往返延迟
缓存策略要点
| 对象 | 建议 | 风险 |
|---|---|---|
| 带版本号或摘要的静态资源 | 长时间缓存 | 更新时文件名变化即可自动生效 |
| 页面文件 | 短时间缓存或不缓存 | 缓存过久导致内容不更新 |
| 带登录态的接口 | 禁止缓存 | 缓存后可能串号,风险最高 |
| 带查询参数的资源 | 明确缓存键是否包含参数 | 键设置不当导致缓存命中率异常 |
| 大文件下载 | 长缓存并配合预热 | 活动上线前未预热会造成回源尖峰 |
验证缓存是否命中
验证缓存是否命中
curl -sI https://cdn.example.com/logo.png # 观察响应头
# 关注缓存命中标记与缓存时长字段,判断是否命中边缘节点
curl -sI https://cdn.example.com/index.html # 页面文件确认是否缓存
# 未命中时会回源,响应头里的回源相关字段会有体现缓存规则配错会把页面或带登录态的接口缓存住:用户看到过期内容,严重时看到别人的数据。上线前务必核对缓存规则与缓存键。
更新资源要主动刷新:即使文件名带版本号,入口页面仍可能被缓存,发布流程里应包含刷新步骤。
源站要配回源白名单:只允许加速节点的回源地址访问源站,防止绕过防护直连源站。
命中率是核心指标:命中率长期偏低说明缓存键或缓存规则设置不合理,加速效果与成本都受影响。