1.
评估需求:流量、并发与存储
- 确定视频平均大小与时长:示例值:10分钟视频≈50MB,720p H.264 编码。
- 估算并发用户峰值:例如峰值并发200人,单用户平均带宽0.2MB/s(≈1.6Mbps)。
- 计算原站带宽需求:200*0.2MB/s=40MB/s≈320Mbps;若来源VPS仅100Mbps,将成为瓶颈。
- 存储容量需求:每日新增50个视频×50MB=2.5GB,每月约75GB,需要对象存储或大容量主机。
- 缓存命中目标:使用CDN将起始源流量削减到10%~30%,显著降低原站带宽开销。
2.
选择CDN模式与扩展插件类型
- Pull 模式:CDN按需从原站拉取(推荐初期),适合 Nginx/Apache + WP 插件支持。
- Push 模式:先将媒体推到 CDN 存储(适合大规模点播或静态归档)。
- 常见WordPress插件:WP Offload Media(推送到S3/CloudFront)、CDN Enabler(设置CNAME并替换URL)、LiteSpeed Cache(若使用LSWS/LSCache)。
- 云服务优选:Cloudflare(边缘保护+CDN)、Amazon CloudFront(结合 S3)、Fastly、腾讯云 CDN、阿里云 CDN。
- 插件选择要点:支持HLS分片、支持Origin Pull、支持自定义CNAME和签名URL、支持缓存控制头设置。
3.
域名与DNS配置流程
- 为媒体设置独立子域名:media.example.com,便于CNAME指向CDN并隔离Cookie。
- DNS TTL:上线前设低TTL(300秒)便于回滚,稳定后可提高(3600~86400秒)。
- CNAME配置:将 media 子域CNAME指向CDN提供的域名(如xxx.cdn.provider.com)。
- SSL/HTTPS:确保边缘与原站均配置TLS,若使用自定义证书,CDN需支持SNI或托管证书。
- DDoS 考量:若使用Cloudflare或类似服务,将DNS托管到其处并启用防护可减少直接攻击原站暴露。
4.
服务器与VPS/主机配置示例
- 原站实例(示例):VPS:4 vCPU / 8GB RAM / 80GB NVMe / 带宽100Mbps,操作系统:Ubuntu 22.04,Nginx 1.24。
- 对象存储(示例):S3 标准,存储75GB/月,PUT/GET 请求数按需计费,适合推模式。
- Nginx 配置要点:开启 byte-range 支持、设置正确的 Cache-Control、启用 gzip 与 brotli(对 HLS 切片慎用)。
- 负载与带宽预估:若不使用CDN,上述VPS在峰值320Mbps下会饱和,需扩容到至少1Gbps或采用负载均衡器。
- 监控部署:安装 Prometheus + Grafana 或使用云监控(带宽/请求/响应码/缓存命中率)。
5.
插件配置与缓存策略细则
- WP Offload Media:用于将 wp-content/uploads 推到 S3/CloudFront,启用“Rewrite Media URLs”。
- CDN Enabler:设置替换域名为 media.example.com,支持排除查询字符串或包含以便正确缓存。
- Cache-Control 指令:对 HLS 切片设置 public, max-age=31536000(分片可长期缓存),对播放清单(.m3u8)设置短TTL(例如60秒)。
- 签名与权限:对付费视频使用 Signed URLs 或 Token,CloudFront 可配置签名URL,防止盗链。
- 缓存清理与失效:插件或CDN须支持按 URL/目录清理与路径前缀失效,自动化通过WP webhook或API完成。
6.
安全与DDoS防御实践
- WAF与速率限制:启用 Cloudflare WAF 或 CDN 的 Web 应用防火墙规则,限制非正常并发连接。
- 黑白名单与地理限制:对异常国家/地区封锁或限制流媒体访问,以减少带宽滥用。
- 源站隐藏与防护:将原站设置为仅允许 CDN IP 访问(通过防火墙或 Nginx allow/deny)。
- 日志与告警:开启访问日志、异常请求频次告警、带宽突增自动告警(阈值示例:短时带宽增长 >50%)。
- 应急回退:DNS 与 CDN 支持回滚策略,准备备用主机与快速切换脚本减少恢复时间。
7.
性能对比与真实案例演示
- 实战案例:某在线教育平台(匿名),原站为单台VPS 4vCPU/8GB/100Mbps,峰值并发200人,原站带宽瞬时饱和。
- 解决方案:使用 WP Offload Media 将历史视频归档至 S3 + CloudFront,利用 Cloudflare 做全球边缘缓存与 DDoS 保护,媒体子域使用 media.example.com。
- 结果数据(部署前后对比):请看下方表格展示带宽与延迟变化(表中数值为平均估算):
| 指标 | 部署前 | 部署后(CDN+签名) |
| 原站出带宽 | ≈320 Mbps | ≈30 Mbps(节省≈90%) |
| 平均启动延迟 | ~1200 ms | ~180 ms |
| 缓存命中率 | 0% | ≈85%(边缘命中) |
| 月带宽费用 | 按出站计费≈$600 | CDN+对象存储≈$220 |
- 结论:通过合理选择插件与CDN模式(推/拉混合),并配置签名URL与缓存策略,既提升播放体验又降低原站成本。
8.
上线验证与运维建议
- 上线前测试:使用压力工具(如 wrk、tsung)模拟并发播放,检查 206 Range 行为与并发连接限制。
- 边缘日志分析:查看 CDN 的命中率、带宽分布、地域热点并据此优化POP选择。
- 自动化部署:将插件配置、域名/CNAME、签名密钥纳入 IaC 或自动脚本,便于横向扩展。
- 定期复盘:按月核对账单、缓存命中与带宽使用,调整 Cache-Control 与切片大小(例如 HLS TS 切片 4s vs 6s)。
- 备案与合规:国内站点注意 ICP 备案与直播点播合规要求,避免突发政策风险。