1.
目标与分层思想概述
小点1:目标是通过多层缓存(浏览器→CDN边缘→CDN区域中继→起源缓存/Shield)最大程度降低 origin 压力与延迟。
小点2:按业务类型划分缓存颗粒:静态资源(图片、CSS/JS)、动态页面(主页、用户页)、API 接口、媒体流。
小点3:为每类确定默认 TTL 与可接受陈旧时间(stale-while-revalidate)以保证可用性。
小点4:引入分层失效(浏览器短 TTL + CDN 长 TTL + 强制刷新机制)以兼顾实时性。
小点5:结合域名(静态子域名 vs 主站域名)、VPS/主机能力决定是否使用 origin shielding 与多机房备份。
2.
按业务场景制定 TTL 与缓存策略
小点1:电商促销(高并发页)——首页与商品页 HTML 建议 Edge TTL 30-120 秒,浏览器 0-60 秒,启用 stale-while-revalidate=30s。
小点2:新闻与公告——列表页 TTL 60-300 秒,详情页 300-1800 秒,重要突发新闻使用 Purge+推送更新。
小点3:静态资源(图片、JS、CSS)——Edge TTL 7 天到30 天(604800s 到 2592000s),浏览器同等或更长,使用文件指纹(hash)实现长期缓存。
小点4:API 接口——涉登录/支付类短 TTL(0-5s)或不缓存,公共数据接口可设 60-300s 并加 Cache-Control: public。
小点5:视频/流媒体——分段(HLS)静态段长期缓存,播放列表(manifest)短 TTL 并采用 origin range 请求与 CDN 层预取策略。
3.
缓存控制头与缓存键设计
小点1:优先使用 Cache-Control、Surrogate-Control 来分层控制:Surrogate-Control 用于告知 CDN 边缘策略。示例:Surrogate-Control: max-age=3600, stale-while-revalidate=30。
小点2:合理设置 Vary(Accept-Encoding、Cookie)以避免缓存污染,尽量避免 Vary: *。
小点3:缓存键包含域名+路径+查询白名单,示例策略:忽略 utm_* 参数,但保留 page、id。
小点4:对带有认证 Cookie 的页面使用缓存分片(Edge-side includes)或 ESI 片段化,静态部分长期缓存。
小点5:利用 ETag + If-None-Match 或 Last-Modified 来降低回源带宽,对大文件启用 Range 支持以便断点续传与分片缓存。
4.
缓存层级、回源保护与清除策略
小点1:部署 origin shield(单点回源)减少并发回源连接数,减轻 VPS/主机压力。
小点2:实施回源限流:Nginx 配置示例限流 worker_connections=1024, limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn addr 20;。
小点3:按场景启用强制刷新(Purge)、软失效(stale-while-revalidate)与概率回源(origin-fallback)。
小点4:监控缓存命中率并自动调整 TTL,目标命中率视业务不同为 70%-95%。
小点5:清除机制:按文件指纹自动失效,重大变更使用 API 批量 Purge,并记录回溯日志。
5.
DDoS 防御与高并发应对策略
小点1:利用 CDN 的速率限制与挑战页面(Challenge)拦截异常请求,避免直接打到 VPS/主机。
小点2:为 API 设置身份认证、token 限频与动态验证码;对短时间高频请求使用令牌桶限流。
小点3:在边缘层启用 WAF 规则拦截常见注入、爬虫、扫描行为,并配合 GeoIP 限制可疑地区访问。
小点4:起源服务器配置示例:VPS 型号 8 vCPU / 16 GB RAM / NVMe 200 GB,Nginx + PHP-FPM(max_children=40)、Redis 8GB 缓存层。
小点5:在高并发窗口预热 CDN(预拉取静态资源、置入热点缓存)并准备可横向扩容的备用主机池。
6.
真实案例与数据演示(含表格)
小点1:案例:某电商双十一预热,原始流量峰值 5 Gbps,origin 带宽峰值若无 CDN 为 5 Gbps。
小点2:优化策略:图片/静态资源 TTL 7 天,商品首页 Edge TTL 60s + stale-while-revalidate=30s,启用 origin shield。
小点3:部署后观测:CDN 缓存命中率提升至 88%,origin 带宽降至 600 Mbps,平均响应时延从 420ms 降至 120ms。
小点4:服务器配置示例(origin):Ubuntu 20.04, Nginx 1.20, 8 vCPU, 16GB RAM, Redis 8GB, 后端数据库主备 PG 4 vCPU/8GB。
小点5:下表为优化前后关键指标对比:
| 指标 | 优化前 | 优化后 |
| 峰值流量至 Origin | 5 Gbps | 600 Mbps |
| CDN 缓存命中率 | 22% | 88% |
| 平均响应时延 | 420 ms | 120 ms |
| 带宽节省 | — | 88%(估算) |
| Origin CPU 峰值 | 95% | 45% |
7.
实施建议与检测指标
小点1:逐步灰度调整 TTL:先在 10% 流量生效,再扩大到全量,观察命中率与回源量变化。
小点2:关键监控指标:缓存命中率、回源请求数、origin 带宽、P95 响应时间、错误率(5xx)。
小点3:定期审计缓存键与 Vary/Set-Cookie 使用,避免因 Cookie 导致低命中率。
小点4:结合域名策略:将静态资源放在静态子域名(cdn.example.com)以减少 Cookie 传输。
小点5:准备应急预案:当 DDoS 或命中率剧降时,快速切换到只读模式、提高 Edge TTL、临时封禁可疑 IP 段。