参考资料

  1. 如何配置忽略源站不缓存标头
  2. CDN共享缓存配置详解
  3. 读取IP变量值 设置教程
  4. 将 ciilii.com 绑定多个 CDN(如 Cloudflare、AWS CloudFront、阿里云 CDN 等),实现流量分发、故障转移或性能优化,可通过以下步骤操作
  5. 防CDN 盗刷的常见手段有哪些
  6. 什么是回源301/302跟随
  7. CDN配置:监控告警及规则条件参数设置指南
  8. OCSP Stapling配置详解

CDN客户端缓存策略配置指南

CDN客户端缓存策略配置指南

基本配置原则

  1. 理解缓存头:客户端应遵循CDN返回的Cache-Control和Expires头

  2. 缓存层级

    • 浏览器缓存

    • CDN边缘节点缓存

    • 源站

具体配置方法

HTTP响应头配置

  1. Cache-Control

    Cache-Control: public, max-age=3600
    • public: 允许所有缓存

    • max-age: 缓存时间(秒)

  2. Expires

    Expires: Wed, 21 Oct 2025 07:28:00 GMT
  3. ETag/Last-Modified

    • 用于缓存验证

不同服务器配置示例

Nginx

location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
    expires 1y;
    add_header Cache-Control "public, no-transform";
}

Apache

<FilesMatch "\.(jpg|jpeg|png|gif|js|css)$">
    Header set Cache-Control "max-age=31536000, public"
</FilesMatch>

Node.js (Express)

app.use(express.static('public', {
  maxAge: '1y',
  setHeaders: (res, path) => {
    if (path.endsWith('.html')) {
      res.setHeader('Cache-Control', 'no-cache');
    }
  }
}));

最佳实践

  1. 静态资源:设置长期缓存(1年)并添加版本号

  2. HTML文件:设置no-cache或短缓存

  3. API响应:根据内容更新频率设置适当缓存

  4. 使用CDN提供的缓存清除接口处理紧急更新

验证方法

  1. 检查HTTP响应头

  2. 使用浏览器开发者工具查看缓存状态

  3. 使用curl命令验证:

    curl -I https://example.com/asset.js

注意事项

  1. 避免过度缓存动态内容

  2. 确保重要更新能通过缓存清除机制传播

  3. 监控缓存命中率调整策略