1.
1.1 导出最近7-30天的访问日志(Web/NGINX/Load Balancer)。如果使用云 CDN,可在 CDN 控制台下载边缘日志。
1.2 将日志按 URL、状态码、请求方法、Content-Type 汇总,统计访问量、带宽和 95% 响应大小,区分静态资源(jpg/png/js/css)与动态 API(/api/)与大文件(/download/)。
1.3 输出热点路径:取前 200 条 URL、按 pv 排序;标注是否含查询字符串、是否需要鉴权、是否返回 Set-Cookie。
2.
2.1 静态资源:长期缓存(TTL 7d-30d),忽略 query(或按特定参数忽略);开启 gzip/brotli;Cache-Control: public, max-age。
2.2 半静态(版本化 JS/CSS、图片 CDN 后端):短期缓存(TTL 1h-24h),允许 stale-while-revalidate,开启协商缓存(ETag/Last-Modified)。
2.3 动态 API:默认不缓存或微缓存(TTL 0-30s),按 Header/Query/URI 细分缓存键(见第4节)。
3.
3.1 登录 CDN 控制台,选择台湾/Asia-TW 节点或选择 CN2 专线加速产品。
3.2 新建“路径规则”:先添加静态路径规则(*.css, *.js, /static/*)设置 TTL=604800(7天),Cache Key 忽略 query;保存并置顶。
3.3 新建“API 规则”:路径如 /api/*,设置不缓存或 TTL=10(秒),开启按 Cookie/Authorization/Accept-Language 区分(如果业务需要),并设置回源始终携带这些 Header。
4.
4.1 静态资源:推荐 Cache Key 仅包含协议+域名+路径,忽略 query 与 Cookie。控制台选择“忽略所有查询字符串”。
4.2 动态资源:如果可缓存,制定白名单参数(如 page、lang),其它参数忽略;Cache Key 示例:host+path+whitelisted_query+accept-language。
4.3 使用 curl 验证:curl -I -H "Host: example.com" https://edge-node/yourfile.js 查看响应头 X-Cache, Age, Cache-Control。
5.
5.1 起用 HTTP/2 或 HTTP/1.1 Keep-Alive:在 CDN 回源设置中启用 HTTP/2-backend(如果支持)或保留长连接,减少 TCP 握手。
5.2 设置回源并发和连接池:将回源并发连接数设为后端可承受的阈值(例如 Nginx worker_connections 的 50%-70%),避免 CDN 突发回源压垮 origin。
5.3 回源重试与超时:设置合理的回源超时(3-10s)与重试次数(1-2 次),以防短时抖动导致长时间等待。
6.
6.1 在 CDN 控制台开启回源健康检查:设置 /healthz 或简单 200 判定,周期 5-15s,失败阈值 3 次。
6.2 配置熔断规则:当回源连续失败超过阈值则短暂(30-120s)停止回源,避免 Origin 崩溃时大量请求回源。
6.3 指定备用回源(备份机房或对象存储),在控制台填写备份源并设置优先级。
7.
7.1 对带有 Authorization 或 Set-Cookie 的响应默认不缓存,若需要缓存需做 token 区分并设置短 TTL 与安全白名单。
7.2 对高频未命中 URL(如每次带不同 query 的图片)采取规则:添加 URL 重写或在后端返回 Cache-Control: public, s-maxage=xx 来强制边缘缓存。
7.3 避免用户特定内容被缓存到公共边缘:使用 Vary: Cookie/Authorization 或把用户专属内容从主域拆分到子域并设置 no-cache。
8.
8.1 在部署大版本或 CDN 规则变更后,先使用批量预热 API 将热点 URL 触发边缘缓存(控制台或脚本)。示例:调用 CDN 提供的 prefetch 接口,批量 1000 条。
8.2 清理策略:对静态资源使用版本号替换(最推荐);必要时调用 CDN Purge API 按路径或按目录清理,避免不必要的全站清理。
9.
9.1 在 Staging 域名先验证规则:通过 curl 检查 X-Cache、Age、Via 等头部,确认 Edge 命中或回源情况。
9.2 采用小流量灰度:先对台湾少量 IP 段或使用流量分配策略(10%)下发新规则,观察回源 QPS、Origin CPU、错误率。
9.3 日志观察关键指标:边缘命中率、回源带宽、origin 95 响应时间、5xx 频率。
10.
10.1 选择带 CN2 专线或 CN2 优化的节点,确保从台湾到内地回源走 CN2 路由可降低丢包与延迟(由 CDN 服务商提供线路选项)。
10.2 在回源地理分布上优先选择距离台湾近的 Origin(如香港/南海/台北自建机房或云上节点),减少回源 RTT 与抖动。
10.3 使用 CDN 提供的路由策略(Geo Steering/GSLB)保证台湾流量优先命中台湾 PoP,避免走大陆回源路径。
11.
11.1 建立监控看板:边缘命中率、回源 QPS、Origin 响应时、5xx、95p 延迟与带宽。
11.2 常用排错命令:traceroute/tcptraceroute 到边缘节点或 origin,mtr 用于长期丢包观察;curl -I -H "Host:" 检查返回头。
11.3 通过抓包(tcpdump)在 origin 侧确认回源请求头,检查是否携带预期的 Host、X-Forwarded-For、X-Cache 标记。
12.
12.1 验证命中:curl -I -H "Host: www.example.com" https://edge-ip/path/file.js 查看 X-Cache: HIT / MISS,Age 显示缓存时间。
12.2 强制回源验证:curl -H "Cache-Control: no-cache" -I https://域名/path 可验证 origin 是否被触发回源并返回最新头信息。
12.3 检查回源超时与重试:模拟回源延迟并观察 CDN 的 504/502 返回与重试策略,调整回源超时。
13.
答:先看响应头的 Cache-Control/ETag/Last-Modified 与 CDN 的 X-Cache/X-Cache-Status,确认是否因为 query 参数或 Set-Cookie 导致不命中;其次检查缓存键设置是否把 query 放入;最后看缓存 TTL 是否过短或是否有频繁清理脚本。
14.
答:启用回源熔断与健康检查,配置备用回源(对象存储或另一区域),设置短超时和有限重试,并在边缘使用 stale-if-error/stale-while-revalidate 策略以缓存旧版本应急。
15.
答:建立每日边缘命中率报告,按 URL 分析 Top-N 未命中项并针对性添加缓存规则或改造后端,使用版本化静态资源避免频繁 Purge,按区域调整 TTL,结合流量账单评估成本-性能平衡。