1.1 明确加速目标:静态文件、动态加速、API 或文件下载,量化 RPS、带宽和延迟目标。
1.2 资源清单:列出域名、现有 DNS 提供商、源站 IP/域名、证书类型(自签/受信任)、日志需求。
2.1 考察节点覆盖、带宽峰值、缓存策略、回源费用、SLA、技术支持响应时长。
2.2 确认是否需要 WAF、DDoS 防护、WebSocket 或自定义回源头部等高级功能,并对比价格。
3.1 创建服务商账号,完成实名认证与付费流程,创建“加速域名”条目。
3.2 在控制台填写源站(origin)地址:可填 IP(带端口)或域名,若源站有多机请填写回源池。
4.1 接入方式常见两种:CNAME(推荐二级域名)或将顶级域名通过 DNS 提供商的 ALIAS/ANAME 指向。
4.2 实操:在 DNS 面板添加 CNAME,示例:www.example.com CNAME xxx.cdnprovider.net,生效后通过 dig+ttl 检查。
5.1 确保源站可接收 CDN 的回源请求:允许 CDN 节点 IP、或使用白名单,开启访问日志便于排查。
5.2 回源头部:设置 Host 为原始域名或指定值;添加 X-Forwarded-For 等以便获取真实客户端 IP。
6.1 证书方案:使用 CDN 提供的托管证书(自动签发)或上传自有证书(PEM/KEY)。选择 SNI 支持的方案。
6.2 强制 HTTPS:在控制台启用 301/302 跳转或在源站配置强制重定向;验证证书链与 OCSP。
7.1 静态资源配置长缓存(Cache-Control: max-age=31536000),对于 HTML 设置短缓存或不缓存。
7.2 使用缓存键策略(是否包含 Query String、Cookie)和路径规则分配不同缓存规则,必要时开启缓存忽略参数。
8.1 上线前预热常用页面和大文件:通过 CDN 提供的预热 API 或访问列表方式把资源拉到边缘节点。
8.2 缓存清理:准备清理脚本(curl 调用提供商的 purge API),示例:curl -X PURGE https://www.example.com/path。
9.1 开启 WAF 规则集、速率限制、黑名单/白名单,针对登录、支付等敏感路径配置更严格策略。
9.2 防盗链:通过 Referer 白名单或签名 URL(URL Token)防止被盗链,设置过期时间以控制有效期。
10.1 基本连通性:使用 dig/nslookup 验证 CNAME,curl -I 验证返回头部(Via、X-Cache、Age、Server),确认 SSL 正确。
10.2 性能与回退测试:用 ab/jmeter 或 k6 做压力测试,模拟缓存命中与回源场景,确认源站负载与回源限流策略。
11.1 分阶段切换:先做灰度(少量子域或 IP 段),监控错误率、延迟、带宽,再逐步扩大流量。
11.2 监控与告警:接入 CDN 与源站的日志到 ELK/Prometheus,配置 5xx、响应时间和缓存命中率告警;准备快速回滚计划。
12.1 日常维护:定期清理过期缓存、检查证书到期、审计 WAF 误报并调整规则。
12.2 优化方向:根据边缘日志优化缓存策略、合并/压缩静态资源、利用缓存分层与多源回源减少延迟。
问:接入CDN后如何确认流量已经走边缘节点?
答:使用 curl -I 查看响应头,检查是否有 Via、X-Cache 或 CDN 专用标识;用 dig 查询 CNAME 是否解析到 CDN;在 CDN 控制台查看边缘访问日志与流量曲线,确认命中率与边缘带宽。
问:遇到回源 5xx 如何排查与临时缓解?
答:排查:查看源站日志定位错误,检查回源头部与认证、源站是否限流或资源耗尽。临时缓解:开启缓存回源保护(stale-while-revalidate)、提高边缘缓存 TTL、做流量回滚到原 DNS 或启用备用源。
问:如何做到平滑回滚如果CDN配置出现问题?
答:在上线前准备回滚步骤:1) 修改 DNS 回退到原始 A 记录或切换 CNAME;2) 取消或调整 CDN 路由策略;3) 同步 DNS TTL(提前把 TTL 调短便于快速回滚);4) 保持源站直连可用并监控切换效果。
