1.
概述与适用场景
- 七牛云 CDN 适合静态资源、图片、视频、下载、API 接口加速等常见场景。
- 使用 CDN 能显著降低源站带宽压力和请求延迟,提升用户体验。
- 本手册聚焦 SDK 接入流程、服务器与域名配置、DDoS 防护与排查技巧。
- 假定读者已有基本的 VPS/主机/域名操作权限与 Nginx/Apache 基础。
- 目标是实现稳定的加速、可追溯的故障排查与有效的攻击防护策略。
2.
接入前的环境准备
- 账户与产品:确认七牛云账户已开通 CDN 服务和加速域名配额。
- 域名与 DNS:准备加速域名(如 cdn.example.com),可提前设置托管 DNS。
- 源站服务器:示例配置:VPS 2CPU/4GB 内存,带宽 100Mbps,公网 IP 203.0.113.10。
- 端口与防火墙:确保 80/443 端口对外开放,防火墙(iptables/ufw)允许七牛回源 IP。
- 测试工具:curl、openssl、dig、mtr、tcpdump 等用于连通性与证书检测。
3.
七牛云 CDN SDK 接入步骤(概览)
- 获取 AccessKey/SecretKey:在七牛云控制台创建应用并保存密钥。
- 安装 SDK:选择语言(Node.js/Go/Java/PHP),通过包管理器安装官方 SDK。
- 初始化客户端:用 AccessKey/SecretKey 初始化签名客户端并配置加速域名。
- 上传/签名/API 调用:上传文件或签名 URL(私有空间),并测试回源、下载。
- 验证生效:通过 curl -I https://cdn.example.com/asset.js 查看响应头中的 X-Cache 或七牛特有 header。
4.
Nginx 源站配置示例(关键项)
- 基本示例:下面为典型 Nginx 配置片段,用于支持回源与缓存控制。
server {
listen 80;
server_name origin.example.com;
client_max_body_size 100M;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
add_header Cache-Control "public, max-age=3600";
}
}
- Cache-Control 与 Expires:静态资源建议设置 max-age 7天以上(如 604800)。
- 回源鉴权:如需验证七牛回源 IP,可在 Nginx 加入 allow/deny 或自定义 Token 验签。
- 大文件分片回源:对视频、断点续传请求,保证支持 Range 请求(add_header Accept-Ranges bytes)。
- 日志与监控:开启 access_log 与 error_log,并按小时切分便于追踪问题来源。
5.
域名与 DNS 绑定注意事项
- CNAME 绑定:加速域名(cdn.example.com)在 DNS 控制台添加 CNAME 指向七牛提供的域名。
- TTL 设置:测试期间可使用低 TTL(如 60s),上线稳定后可提升到 600s 或更高。
- 根域名(A/ALIAS):若需裸域加速,可使用 ANAME/ALIAS 或在七牛控制台做域名解析。
- DNS 解析验证:使用 dig +short cdn.example.com 查看是否解析到七牛 CNAME。
- IPv6 与双栈:确认是否需要支持 IPv6,按需在七牛控制台开启或配置 AAAA 记录。
6.
常见回源与缓存问题排查技巧
- 检查响应头:通过 curl -I 查看 X-Cache、Age、Cache-Control、Etag 等字段。
- 回源负载高:若回源请求过多,检查缓存命中率并调高 TTL 或启用路径级别缓存规则。
- 304 与 If-Modified-Since:确认是否合理使用协商缓存,避免无效回源。
- 缓存刷新:使用七牛提供的刷新/预热 API 清理热更资源,避免缓存不一致。
- 回源错误排查:若 5xx,查看 Nginx error_log、七牛回源日志(控制台回源状态)与源站吞吐。
7.
HTTPS、证书与 TLS 问题排查
- 七牛托管证书:可在控制台上传自有证书或启用七牛自动签发(Let's Encrypt)。
- SNI 支持:确保源站与客户端都支持 SNI,否则会出现证书不匹配问题。
- TLS 版本:推荐启用 TLS1.2/1.3 并禁用 TLS1.0/1.1 来提高安全性。
- 验证命令:openssl s_client -connect cdn.example.com:443 -servername cdn.example.com 可查看证书链。
- 常见错误:证书过期、链不完整、域名不匹配,均会导致浏览器或 SDK 抛出连接错误。
8.
DDoS 防护与限流实战技巧
- 七牛防护能力:七牛提供基础防护、CC 限速与 Web 防火墙(WAF),可在控制台开启规则。
- Nginx 限流:示例限流配置(每秒平均 10 次,突发 20):
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
server {
location / {
limit_req zone=one burst=20 nodelay;
}
}
- 黑白名单:结合七牛黑名单与源站的 iptables 做二级过滤,减轻回源压力。
- 连接数与 SYN 攻击:可在内核调整 net.ipv4.tcp_syncookies、最大连接追踪等参数。
- 监控告警:设置峰值带宽、错误率与回源 QPS 告警,配合自动化脚本触发防护策略。
9.
监控与性能对比(数据演示)
- 性能对比场景:对比启用 CDN 前后同一静态资源的延迟与带宽消耗。
- 测试方法:使用 100 并发请求,采样 1 分钟内平均值。
- 说明:以下是一次真实迁移测试的汇总数据(示例)。
| 指标 | 启用 CDN 前 | 启用 CDN 后 |
| 平均响应延迟 | 220 ms | 48 ms |
| 源站带宽峰值 | 200 Mbps | 25 Mbps |
| 缓存命中率 | 0% | 86% |
| 错误率(5xx) | 1.2% | 0.1% |
- 结论:从表中可见,CDN 能将延迟降低约 4.5 倍,源站带宽下降 ~87%,大幅提升稳定性。
10.
真实案例与配置总结
- 案例概述:某视频平台迁移示例,日峰值流量 200 Mbps,原站为 4 核 8G VPS,源站 IP 203.0.113.10。
- 关键调整:使用七牛 CDN 分发 HLS,设置 ts 文件 Cache-Control 7 天,m3u8 设置短 TTL(60s)。
- 成果数据:上线后源站带宽峰值降至 30 Mbps,缓存命中率稳定在 88%,用户播放卡顿率下降 70%。
- 配置建议:静态资源长缓存,动态接口开启路由级别回源校验,使用七牛 WAF 阻挡常见 Web 攻击。
- 最佳实践:监控 + 自动化(脚本化刷新、异常时切回备用源、按需扩大防护策略)是长期稳定运行的关键。