给网站提速:华为云CDN从添加加速域名、回源配置到缓存刷新全实操
一、为什么需要 CDN
假设你的网站源站部署在一个区域(比如华东),那么华南、华北、西南的用户访问时,请求要跨多个网络节点长途跋涉,延迟高、容易丢包;一旦访问量上来,所有请求都集中打到源站,源站带宽和连接数很快成为瓶颈。
CDN(Content Delivery Network,内容分发网络)的思路是:在全国乃至全球部署大量边缘节点,用户访问时由 DNS 调度到离他最近的节点,节点上有缓存就直接返回,没有缓存才回源站取并缓存。效果是:用户就近接入、访问更快,源站只承担少量回源流量,抗 DDoS 和并发能力也更强。图片、视频、JS/CSS、安装包、静态网页等"不常变化"的内容,最适合放 CDN。
二、先理解 CDN 的工作过程
- 用户在浏览器输入加速域名,DNS 经过 CNAME 调度,返回一个离用户最近的边缘节点 IP;
- 浏览器向该边缘节点发起请求;
- 节点判断目标资源是否已缓存且未过期:命中则直接返回;未命中则向源站发起回源请求;
- 源站把内容返回给边缘节点,节点缓存一份,再返回给用户;
- 之后同一区域的用户访问,就直接由边缘节点命中返回,不再回源。
理解了"边缘节点 + 回源 + 缓存"这条链路,后面的配置就都有了对应。
三、第一步:准备工作
- 一个域名:加速域名通常用二级域名,如
static.example.com专门放静态资源; - 备案:在中国大陆使用 CDN,加速域名和源站域名需要完成 ICP 备案(使用中国大陆范围加速时强制要求);
- 一个可用的源站:可以是 ECS 的公网 IP、自建源站域名,也可以是 OBS 桶(推荐静态资源直接用 OBS 作为源站,配合前面 OBS 图床/静态托管的用法);
- 如果要走 HTTPS,提前准备好加速域名的 SSL 证书(可在云证书管理服务申请免费证书)。
四、第二步:添加加速域名
控制台进入「CDN 与智能加速 → 内容分发网络 CDN」,在「域名管理」点「添加域名」:
- 加速域名:填准备好的二级域名,如
static.example.com; - 加速业务类型:静态资源选「网站加速」或「静态加速」,下载包选「下载加速」,视频选「点播加速」,按实际选;
- 服务范围:面向国内用户选「中国大陆」(需备案),也可选全球或全球不含中国大陆;
- 加速范围:默认即可,提交后域名进入"配置中",几分钟后变为"已开启"。
五、第三步:配置源站与回源
添加域名时或在域名的「源站配置」里,告诉 CDN 回源时去哪里取内容:
- 源站类型:选 IP(填 ECS 公网 IP)、源站域名,或 OBS 桶域名(如
mybucket.obs.cn-east-3.myhuaweicloud.com); - 回源端口/协议:源站支持 HTTP 用 80、支持 HTTPS 用 443,可配置回源协议跟随或固定;
- 回源 HOST:当源站一个 IP 上托管了多个站点时,要把回源 HOST 设成源站识别用的域名,否则源站可能返回默认站点或报错;
- OBS 源站建议同时开启私有桶回源授权,避免私有对象需要签名才能访问。
六、第四步:配置 CNAME(最关键,不配不生效)
域名添加成功后,CDN 会分配一个 .cdn.dnsv1.com 之类的 CNAME 地址。你需要到域名的 DNS 解析服务商处,为加速域名添加一条 CNAME 记录,指向这个地址:
记录类型:CNAME
主机记录:static
记录值: xxxxx.cdn.dnsv1.com
配置后等待 DNS 生效(几分钟到几十分钟),在 CDN 控制台域名列表看到 CNAME 状态变为"已配置",说明调度链路已打通。这一步是新手最容易遗漏的:域名加了、源站配了,但没配 CNAME,访问根本不会走到 CDN。
七、第五步:缓存规则与过期时间
在「缓存配置」里设置不同资源在边缘节点缓存多久:
- 带指纹/哈希的静态资源(如
app.a1b2c3.js)内容变更即换文件名,可以设很长的过期时间(如 30 天); - 普通图片、CSS 可设 7 天左右;
- 不希望被缓存的动态接口(如
/api/)设置为不缓存或过期时间 0; - 可按目录、文件后缀、全路径分别配置优先级;
- 还可配置缓存键(Cache Key),决定是否忽略 URL 参数,避免同一资源因不同参数被重复缓存。
缓存策略直接决定命中率:规则太保守、过期太短,回源率就高;规划合理,命中率能稳定在 90% 以上。
八、第六步:HTTPS 与访问优化
- 在「HTTPS 配置」上传或选择加速域名证书,开启 HTTPS;
- 可开启强制 HTTPS 跳转,把 HTTP 请求 301 到 HTTPS;
- 开启 HTTP/2,多路复用降低握手开销;
- 按需开启 Gzip/Brotli 压缩,进一步减小文本资源体积;
- 可配置 URL 鉴权(带时效签名),防止下载/视频资源被恶意盗刷。
九、第七步:访问验证、刷新与预热
配置完成后,先 curl -I 或浏览器访问加速域名,看响应头里是否出现 CDN 节点标识(如 HWS、x-cache 相关字段)以及 X-Cache-Lookup: HIT,HIT 表示已命中边缘节点。
- 缓存刷新:当源站内容更新、但边缘节点还缓存着旧内容时,可在「刷新预热」里按 URL 或目录刷新,让节点下次重新回源;
- 预热:新版本发布、大促前,主动把指定 URL 推送到各边缘节点,避免首批用户访问时集中回源。
刷新和预热都有每日配额,正常业务足够使用。
十、监控:重点看命中率
CDN 控制台提供流量、带宽、请求数、缓存命中率、回源率、状态码等指标。重点关注:命中率持续偏低要检查缓存规则和过期时间;回源流量异常要排查缓存键和参数;4xx/5xx 增多要结合源站健康和刷新记录定位。也可配置用量告警,在带宽或回源异常时及时通知。
十一、成本与避坑清单
- CDN 主要按实际使用的流量/请求计费,不用不花钱,符合小团队按需使用;合理提高命中率能显著降低回源流量费用;
- 大陆加速必须备案,提前规划避免卡在这一步;
- CNAME 必须配置且确认生效,这是第一大"不生效"原因;
- 源站安全组要放通 CDN 回源,同时建议只允许 CDN 回源、隐藏源站真实 IP,提升抗攻击能力;
- 回源 HOST 配错会导致源站返回错误站点,多站点场景尤其注意;
- 动态内容不要强行缓存,否则会出现数据不一致;
- 资源更新优先用文件名指纹,配合长缓存,比每次手动刷新更可靠。
十二、总结
用 CDN 给静态资源加速,核心就几步:添加加速域名、配好源站与回源、用 CNAME 把流量调度到边缘、按资源类型设计缓存规则、开 HTTPS 与压缩,再用刷新预热和命中率监控做日常运营。建议你直接拿之前 OBS 桶里的图片做源站,配一个加速域名走通全流程,再用 curl 看 HIT 状态,就能直观感受到访问速度和源站压力的变化。下一篇我会继续写弹性负载均衡 ELB,看多个应用实例之间如何分摊流量。
- 点赞
- 收藏
- 关注作者
评论(0)