1.
证书与TLS链路核查
1) 检查域名在CDN面板的证书模式(例如 Cloudflare 的 Flexible/Full/Full(strict)),建议使用 Full(strict)。
2) 验证源站证书是否为完整链(包含中间证书),可用 openssl s_client -connect origin:443 -showcerts 检测。
3) 确认 SNI 配置:CDN 请求到源站要带正确的 Server Name,否则会返回默认证书导致手机浏览器拒绝。
4) 浏览器兼容性:确保支持 TLS1.2+ 和 ALPN(HTTP/2),移动端较旧系统可能不支持 TLS1.0。
5) 证书有效期与自动更新:示例数据:Let's Encrypt 90 天,推荐设置自动续期并监控到期提醒(剩余天数 <30 报警)。
6) 实际案例:某客户因使用 Cloudflare Flexible 且源站启用了 HSTS,手机端产生 HTTPS 重定向循环,排查后切换为 Full(strict) 并上传源站证书问题解决。
2.
缓存策略与边缘行为确认
1) 检查 CDN 缓存规则:静态资源设置较长 TTL,动态页面设置 no-cache 或短 TTL(示例:静态资源 86400s,HTML 3600s)。
2) 确认 Cache-Control 与 Vary 头是否合理,移动端用户代理变化需避免误缓存。
3) 缓存刷新流程:上线后强制清除边缘缓存并验证各机房是否完成回收。
4) 浏览器缓存与 CDN 缓存联动:确保移动端因缓存错误不是 304/缓存不命中导致白屏。
5) 示例表格(服务器/CDN 缓存配置):
| 项 | 值 |
| HTML TTL | 3600s |
| 静态资源 TTL | 86400s |
| 浏览器 Cache-Control | public,max-age=86400 |
| CDN 边缘一致性 | 强制刷新 -> 30s 完成 |
6) 案例:某电商上线促销页面后因 CDN 缓存规则错误导致手机端加载旧 JS,造成支付按钮失效,调整 TTL 后问题消失。
3.
路由与 DNS / IPv6 验证
1) 检查域名的 A/AAAA/CAA 记录是否正确,移动网络偏向 IPv6,缺少 AAAA 会导致部分手机超时。
2) 验证 DNS 解析链:使用 dig +trace 域名 和各地解析点测试解析一致性。
3) 路由与防火墙:确认源站对 CDN 节点的 IP 开放白名单(或使用 CDN 回源域名),防火墙不要仅允许 HTTP(S) 来自特定机房。
4) traceroute 或 mtr 检测移动端网络到 CDN 边缘的路由是否存在丢包或跳数异常。
5) 路由表示例:网关 192.0.2.1,默认路由指向 BGP Peer,BGP 安全策略允许 2 条备份链路,丢包率 <0.1%。
6) 实际案例:一次故障中,问题出在 ISP 在某城市对 CDN 边缘做了 NAT,导致手机用户走不到最近边缘,增加了 200ms 延迟并产生 TLS 握手超时,协调 CDN 替换节点解决。
4.
源站服务器配置检查
1) 基本配置:示例源站 VPS:4 vCPU / 8GB RAM / Ubuntu 20.04 / Nginx 1.18 / OpenSSL 1.1.1,推荐配置并监控负载。
2) Nginx 配置要支持 PROXY_PROTOCOL(若 CDN 开启),并正确设置 real_ip_header 与信任的 CIDR。
3) Keepalive、worker_processes 和 worker_connections 调整:示例 worker_processes auto;worker_connections 10240。
4) 日志级别与错误监控:检查 access/error 日志是否有大量 400/495/521 错误,移动端常见 495(证书错误)。
5) 健康检查与超时:源站应对 CDN 的健康检查返回 200,超时设置建议 5s 内。
6) 案例与数据:某客户源站 Nginx 默认 keepalive_timeout=75 导致与 CDN 间连接资源被耗尽,修改为 15 后连接稳定,错误率从 3% 降到 0.1%。
5.
DDoS 与流量突发防护
1) 在 CDN 层开启速率限制与 IP 黑名单/挑战页面来拦截异常流量,常见阈值示例:每秒 1000 请求/源 IP。
2) 带宽与包速阈值:监控入站流量,预设阈值为 500 Mbps 报警,超过 1 Gbps 自动触发清洗。
3) 源站防护:在 VPS/主机上启用 iptables/nftables 限制 SYN/连接速率(例如 connlimit 50)。
4) 异常分析:结合 CDN 日志与源站流量,区分真实用户与攻击流量(UA、Referer、行为)。
5) 演练与恢复:定期演练流量切换与回滚策略,确认移动端在清洗过程中能继续访问。
6) 案例:客户遭小型 DDoS,CDN 清洗后峰值从 2.4 Gbps 降到 60 Mbps,移动端影响小于 2 分钟。
6.
上线前后的验证与监控清单
1) 上线前验证点:证书链、SNI、A/AAAA 解析、CDN 回源白名单、缓存规则、健康检查配置。
2) 移动端专测:至少用 3 款不同品牌手机(iOS Safari/Chrome、Android Chrome、微信内置浏览器)做完整流程测试。
3) 自动化合规检查:设置脚本检测 10 分钟一次的 HTTPS 握手成功率、HTTP 状态码分布、平均响应时间。
4) 报警与回滚:出现移动端 >1% 错误率或 5 分钟内持续 5 次 5xx,自动回滚到上一个稳定配置。
5) 文档与责任分工:明确 DNS/CDN/源站/前端负责人与联系方式,确保问题能在 30 分钟内响应。
6) 总结性案例:一次生产发布后,因忽略 AAAA 记录导致部分移动用户无法加载,修复记录并强制刷新 CDN 缓存后 12 分钟恢复;事后补充了上线检测清单避免复发。