用途
CDN Setup 用于配置内容分发网络,实现快速、可靠的全球资源分发,并配合适当的缓存、失效刷新与安全策略。
适用场景包括:
- 在全球范围内以低延迟提供静态资源(JS、CSS、图片、字体)。
- 将流量从源站卸载,降低计算成本。
- 在边缘添加 TLS 终止与 DDoS 防护。
- 实现基于地理的路由或内容限制。
- 通过边缘缓存加速 API 响应。
主要能力
该技能覆盖三大 CDN 平台:AWS CloudFront、Cloudflare 和 Fastly。
AWS CloudFront
- 通过 CLI 创建分发(含 S3 源与 OAC 源访问控制)。
- 缓存失效:失效特定路径、全部路径,检查失效状态,列出近期失效。
- CloudFront Functions:轻量级边缘逻辑,例如 URL 重写(为目录请求添加 index.html)。
- 通过 Terraform 定义分发,包括默认缓存行为、SPA 回退、API 直通(不缓存)等。
Cloudflare CDN
- 区域设置:通过 API 添加区域并获取区域 ID。
- 缓存规则(替代 Page Rules):为静态资源配置缓存规则。
- 清除缓存:全部清除、按 URL 清除、按前缀清除。
源站缓存头
- 提供 nginx 缓存头配置示例,涵盖带指纹的静态资源、图片字体、HTML 与 API 响应。
- 提供 Cache-Control 速查表,说明各指令含义。
缓存预热与监控
- 缓存预热:部署后预热关键页面的 bash 脚本示例。
- 监控缓存性能:通过响应头检查缓存状态,查询 CloudFront 缓存命中率。
故障排查
提供常见症状、原因与修复对照表,包括缓存状态为 DYNAMIC、命中率低、部署后内容陈旧、CORS 错误、502 错误、混合内容警告、失效成本高等。
使用方式
示例使用占位符并会创建计费资源。在配置、更改 DNS/缓存规则或清除缓存之前,请确认区域/分发/账户并准备回滚。仅缓存有意公开的响应;即使路径类似静态资源,也要绕过认证、租户特定和敏感路由。不要剥离携带授权或内容标识的查询参数。
前置条件:
- 具有 DNS 管理权限的域名。
- 源服务器或 S3/R2 存储桶,内含要提供的内容。
- 已配置 AWS CLI(用于 CloudFront)。
- 已配置区域的 Cloudflare 账户(用于 Cloudflare CDN)。
- Terraform 1.5+(用于基础设施即代码示例)。
适用场景
- 静态资源全球低延迟分发。
- 源站流量卸载与成本降低。
- 边缘 TLS 终止与 DDoS 防护。
- 基于地理的路由或内容限制。
- API 响应边缘缓存加速。
限制
- 基础设施命令可能中断服务:在变更状态前确认目标主机/范围,并准备备份/快照。
- 仅文档导入:上游脚本和模板未随附。
- 示例使用占位符并会创建计费资源,需确认区域/分发/账户并准备回滚。
- 仅缓存有意公开的响应,绕过认证、租户特定和敏感路由。
- 不要剥离携带授权或内容标识的查询参数。
相关技能
- dns-management:用于 CDN CNAME 设置的 DNS 记录。
- cloudflare-pages:Cloudflare 为 Pages 项目内置的 CDN。
- reverse-proxy:CDN 背后的源服务器配置。
- load-balancing:多源 CDN 后端。