1.
环境准备与选型
- 选择支持 CN2(或联通/电信直连优化路由)的台湾机房供应商,确认出站到大陆链路为 CN2/GIA 或等效优化;
- 选择 CDN 服务商(如 Cloudflare、阿里云 CDN、腾讯云 CDN 等),要求在台港及大陆有 POP 节点并支持自定义源站、HTTPS 与 origin pull;
- 准备域名、证书(可使用 CDN 托管证书或在源站使用 Let’s Encrypt),并确保 DNS 可修改。
2.
在台湾 CN2 服务器上搭建静态资源源站
- 部署 Nginx(或 Apache):apt/yum 安装 nginx,并把静态文件放入 /var/www/static;
- Nginx 配置要点:开启 gzip/brotli,配置 expires 与 Cache-Control(如 max-age=31536000 对于带哈希的资源),启用 HTTP/2;示例 location 块设置静态缓存;
- 防火墙与白名单:开放 80/443,对 CDN 的回源 IP 做白名单(如果 CDN 提供回源 IP 列表),降低被直接攻击的风险。
3.
生成与部署 TLS 证书
- 若用 CDN 托管证书:在 CDN 控制台绑定域名并选择自动证书管理;
- 若源站需要证书(回源 HTTPS):源站使用 Let's Encrypt 自动续期或使用自签证书配合 CDN 的忽略/验证设置,确保证书链完整;
- 验证:curl -I https://your.domain --http2 检查 TLS 握手与协议支持。
4.
CDN 控制台的基础配置
- 新建加速域名:填入要加速的静态资源域名(如 static.example.com),设置源站为台湾 CN2 服务器的域名或公网 IP;
- 回源协议:优先选择 HTTPS(回源协议为 HTTPS Only 或 HTTPS Preferred),同时设置回源主机头为原域名;
- 缓存规则:按文件类型设置缓存(如 .css,.js,.jpg 为长缓存),对带 query string 的资源按需缓存或忽略 query。
5.
高级缓存与压缩优化
- 开启边缘压缩(Brotli/ gzip)与 HTTP/2/3(如果 CDN 支持),减少传输体积与 RTT;
- 启用静态资源版本化(文件名带 hash),配合长缓存策略避免缓存污染;
- 启用 Image Optimization(若 CDN 有)自动调整图片格式与尺寸以减少负载。
6.
DNS 与切换策略
- 将加速域名的 DNS 切换为 CDN 提供的 CNAME(或按 CDN 要求设置),设置较短的 TTL(如 300s)以便回滚;
- 对于主域名和 API,可保留原有解析并只对静态域名做 CDN;
- 发布前先在本地 hosts 指向 CDN 或源站做测试,确认无误再切换正式 DNS。
7.
回源限流与安全设置
- 在 Nginx 配置限流(limit_req)与防盗链,避免恶意请求打满源站;
- 在 CDN 控制台开启 WAF、DDoS 防护与热点缓存保护,设置合理的速率阈值;
- 日志与审计:保留 CDN 与源站访问日志以便排查缓存命中和异常流量。
8.
上线前的测试与验证
- 路由与连通性:使用 traceroute/tracert 验证走 CN2 路由至台湾机房,并用 mtr 观测丢包;
- 缓存命中率与头部验证:curl -I 查看响应头(Via、X-Cache、Cache-Control、Age),确保边缘命中;
- 性能测试:使用 WebPageTest、curl + time_total、ab 或 wrk 测试 TTFB、首屏时间以及并发表现。
9.
监控、日志与持续优化
- 配置 CDN 的监控告警:带宽、请求数、命中率、异常 4xx/5xx;
- 周期性清理与预热:在大版本发布时使用 CDN 的预热/预取 API,减少冷启动请求;
- 根据日志优化:调整缓存规则、图片策略、并行请求数与资源合并策略。
10.
常见故障排查(问)
问:刚切换到 CDN 后,为什么发现边缘未命中,仍然频繁回源?
答:常见原因包括 Cache-Control/Set-Cookie 导致不缓存、未设置正确文件后缀缓存规则、URL 带不被缓存的 query string 或回源验证失败。检查响应头、CDN 控制台的缓存规则,并用 curl -I 验证边缘返回头(X-Cache 等)。
11.
SSL/回源问题诊断(问)
问:启用 HTTPS 后出现 Mixed Content 或 TLS handshake 失败怎么办?
答:Mixed Content:确保页面引用的所有资源都走 https;TLS handshake:确认源站证书是否有效且链完整,CDN 是否允许自签证书或需要 CA 证书,尝试采用 CDN 托管证书解决回源验证问题。
12.
性能优化建议汇总(问)
问:在台湾 CN2 源站 + CDN 架构下,怎样进一步提升静态资源分发速度?
答:建议:1)尽量把静态资源放在带 hash 的长缓存策略;2)开启 Brotli/HTTP/2/3;3)利用 CDN 的边缘图片/视频优化;4)使用预热 API 在流量高峰前填充缓存;5)监控并针对慢请求优化回源。