CDN 缓存:CloudFront 分发策略

本文阐述我们如何使用 CloudFront CDN 缓存内容并提升全球性能。

问题:全球延迟

用户从世界各地访问我们的网站:

  • 印度:50ms 延迟

  • 美国:200ms 延迟

  • 欧洲:250ms 延迟

  • 亚洲:150ms 延迟

从印度处理所有流量会导致国际用户页面加载缓慢。

解决方案:CloudFront CDN

CloudFront:AWS 内容分发网络

边缘站点:全球 400+ 个位置

优势:从最近的位置提供内容

缓存内容

静态资源(长 TTL)

内容:图片、CSS、JavaScript、字体

TTL:1 年

路径:/s/*

优势:极少变更,积极缓存

产品页面(中等 TTL)

内容:产品规格、图片

TTL:1 小时

路径:/p/*

优势:平衡内容新鲜度与性能

查询页面(短 TTL)

内容:搜索结果、筛选视图

TTL:5 分钟

路径:/q/*

优势:频繁更新,短期缓存

文章(长 TTL)

内容:技术文档

TTL:24 小时

路径:/a/*

优势:极少变更

不缓存内容

动态内容:

  • 搜索结果 (/q/?q=<query>)

  • 用户特定内容(购物车、账户)

  • API 端点 (/api/*)

原因:必须保持新鲜,用户特定

缓存行为

缓存键

CloudFront 使用 URL 作为缓存键:

相同 URL:从缓存提供

不同 URL:新建缓存条目

查询参数:包含在键中(跟踪参数除外)

缓存头

源服务器设置缓存头:

Cache-Control: public, max-age=3600

public:可由 CDN 缓存

max-age:缓存持续时间(秒)

缓存失效

手动:创建失效请求

自动:等待 TTL 过期

成本:每月前 1,000 条路径免费

参见:CACHE_INVALIDATION_RULE.md 了解策略

源站保护

CDN 保护源服务器:

流量吸收:CDN 处理流量峰值

DDoS 缓解:过滤恶意流量

速率限制:防止源站过载

优势:源站保持响应能力

SSL/TLS

证书:AWS Certificate Manager

协议:TLS 1.2+

优势:加密流量,免费证书

压缩

Gzip:对文本内容启用

Brotli:对现代浏览器启用

优势:更快下载,更低带宽

地理限制

无:全球可用

优势:全球覆盖

监控

指标:

  • 缓存命中率

  • 源站请求数

  • 错误率

  • 各区域延迟

CloudWatch:AWS 监控服务

成本优化

缓存命中率:越高 = 成本越低

源站请求数:越少 = 成本越低

数据传输:缓存 = 更便宜

优势:CDN 降低基础设施成本

参考资料

AWS 服务

相关文章

总结

CloudFront CDN 提升全球性能:

缓存内容:

  • ✅ 静态资源(1 年 TTL)

  • ✅ 产品页面(1 小时 TTL)

  • ✅ 查询页面(5 分钟 TTL)

  • ✅ 文章(24 小时 TTL)

不缓存:

  • ✅ 动态搜索

  • ✅ 用户特定内容

  • ✅ API 端点

优势:

  • ✅ 更低延迟(边缘站点)

  • ✅ 源站保护(流量吸收)

  • ✅ DDoS 缓解

  • ✅ 成本降低(更少源站请求)

功能:

  • ✅ SSL/TLS 加密

  • ✅ Gzip/Brotli 压缩

  • ✅ 全球可用性

此 CDN 策略平衡了性能、内容新鲜度与成本。


← 返回文档索引