1. 概述与需求评估
1) 评估目标:降低海外访问延迟、减轻源站带宽并提升稳定性。
2) 业务指标:目标首屏时间<200ms、99.95%可用性、带宽削峰50%-80%。
3) 流量峰值估算:预计峰值并发10k,平均带宽20Mbps,最高突发200Mbps。
4) 地域分布:主要用户在北美、欧洲、东南亚,需选择对应 PoP 节点。
5) 合规与数据主权:确认日志保留和 GDPR/当地法律要求。
2. CDN 选型要点
1) 服务商类型:公共 CDN(Cloudflare、Akamai、Fastly)vs 云厂商 CDN(AWS CloudFront、GCP CDN)。
2) 性能维度:查看 PoP 数量、Anycast 支持、BGP 链路与回源延迟测试。
3) 功能需求:支持 HTTP/2、HTTP/3(QUIC)、边缘缓存规则、缓存预热、Image/Video 优化。
4) 安全能力:内置 WAF、DDoS 防护峰值(如能抵御 100Gbps+ 攻击),速率限制与 IP/Geo 阻断。
5) 成本和计费:按流量计费 vs 按带宽保底,查看 CDN 价格与回源流量费用。
3. 域名与 DNS 配置实操
1) 域名准备:在域名注册商添加应用子域,如 cdn.example.com。
2) DNS 记录类型:若使用 CNAME 型 CDN,设置 cdn.example.com CNAME 指向供应商分配域名;若使用 Anycast A 记录,添加多条 A/AAAA。
3) TTL 策略:上线前可设置较短 TTL(60-300s),稳定后提升到 3600s 以减少解析压力。
4) DNS 监控:配置二级 DNS 或 DNSFailover,确保解析故障时快速回切。
5) 示例记录:cdna.example.com CNAME cdn-provider.example.net(自动回源到 origin.example.com)。
4. 源站与 VPS/服务器配置
1) 推荐配置(中小型站点):Ubuntu 20.04,4 vCPU,8GB 内存,100GB SSD,带宽 100Mbps。
2) 高并发配置示例:8 vCPU,16GB,500GB NVMe,带宽 1Gbps,连接数调优 net.core.somaxconn=1024。
3) Web 服务:Nginx 1.18+ 或 Apache,开启 sendfile、tcp_nopush、keepalive_timeout 优化。
4) 回源限制:设置 origin 的最大连接与速率(如 limit_conn_zone 和 limit_req)以防突发回源风暴。
5) 日志与监控:安装 Prometheus + Node Exporter,并保留至少 14 天访问日志。
5. 缓存策略与边缘规则
1) 缓存粒度:静态资源(.css/.js/.jpg/.png)设置 Cache-Control: public, max-age=86400;动态内容走 no-cache。
2) 缓存键:默认 URI+Query,可按需忽略特定 Query 参数或加入 Cookie 区分。
3) 缓存刷新:支持 API 清理和按 URL/目录清理,发布时触发批量 purge。
4) 缓存预热:对热点文件采用预热脚本并行请求边缘缓存,减少冷启动延时。
5) 实测效果:通过 CDN 缓存后,静态命中率 85%-95%,回源带宽下降约 70%。
6. SSL、HTTP/2/3 与安全配置
1) SSL 方案:建议使用 CDN 提供的通配证书或 Let’s Encrypt 自动签发,启用 TLS1.2+。
2) 协议支持:开启 HTTP/2 与 HTTP/3(QUIC)以降低 RTT,尤其海外网络表现明显。
3) WAF 规则:启用 OWASP 基础规则集,添加自定义规则屏蔽常见注入、爬虫。
4) DDoS 防御:配置速率限制、连接数上限与黑白名单;若攻击 >100Gbps,启用清洗服务。
5) 实例防护策略:对登录/支付接口设置更严格的 ACL 与 CAPTCHA 验证。
7. 上线前压测与监控
1) 压测工具:使用 wrk、k6 或 loader.io 做并发压测,模拟不同区域流量。
2) 指标关注:响应时间 P50/P95/P99、错误率、回源流量、边缘命中率。
3) 测试结果示例:上线前从北美测试 1000 并发,首字节时间由 220ms 降至 45ms。
4) 监控告警:配置异常流量、错误码突增和 RTT 告警到 PagerDuty/钉钉。
5) 灰度上线:先在少量节点或子域进行灰度,确认无异常再全量切换。
8. 真实案例与配置数据(示例)
1) 项目背景:某SaaS公司目标用户在北美与欧洲,月流量 2TB,峰值并发 12k。
2) 方案选择:采用 Cloudflare Pro + 回源为自建 VPS(Ubuntu 20.04,4vCPU/8GB/100Mbps)。
3) 安全设置:启用 WAF、DDoS 自动清洗与速率限制;登录接口 10s 内限流 5 次。
4) 性能前后对比:平均延时从 180-250ms 降至 30-60ms,回源带宽下降 75%。
5) 下表为上线前后关键数据对比:
| 指标 |
上线前 |
上线后 |
| 平均首字节时间 (ms) |
220 |
48 |
| 静态命中率 |
12% |
88% |
| 回源带宽 (月) |
2TB |
0.5TB |
| 可用性 |
99.80% |
99.99% |