网络与分发

缓存命中率每提升 10%,源站成本和延迟一起降

很多站点的 CDN 命中率只有 50%-60%,原因往往是缓存键设计不当,把不必要的 Header 和 Query 都算进去了。

CDN 优化清单

提升命中率

  • 缓存键只包含真正影响响应的字段,剔除无关 Query 与 Header
  • 静态资源用内容哈希文件名 + 长 max-age,实现永久缓存
  • HTML 用短 TTL + stale-while-revalidate,兼顾更新与性能
  • 开启 Origin Shield 减少回源次数
  • 对 Vary 头保持谨慎,一个不必要的 Vary 能让命中率腰斩

源站保护

  • S3 源站用 OAC,禁止直接公网访问桶
  • 自定义源站校验 CloudFront 自定义 Header,拒绝绕过 CDN 的直连
  • WAF 挂在 CloudFront 层,拦截在边缘而不是源站
  • 配置源站故障转移,主源不可用时自动切备源
  • 限流规则按 IP 与路径分级设置

性能与体验

  • 开启 Brotli 与 Gzip 压缩
  • 启用 HTTP/2 与 HTTP/3
  • 图片按设备返回 WebP/AVIF,用 CloudFront Functions 做协商
  • 关键 API 用 Global Accelerator 走 AWS 骨干网
  • 配置实时日志与缓存命中率看板

缓存策略与安全响应头

javascript cloudfront-function.js
// CloudFront Functions:在边缘补充安全响应头并做图片格式协商
// 部署在 viewer-response 事件上,执行时间需控制在 1ms 内

function handler(event) {
  var response = event.response;
  var headers = response.headers;

  // 安全响应头,比在应用层加更省事也更统一
  headers['strict-transport-security'] = {
    value: 'max-age=63072000; includeSubDomains; preload'
  };
  headers['x-content-type-options'] = { value: 'nosniff' };
  headers['x-frame-options'] = { value: 'SAMEORIGIN' };
  headers['referrer-policy'] = { value: 'strict-origin-when-cross-origin' };
  headers['permissions-policy'] = {
    value: 'camera=(), microphone=(), geolocation=(self)'
  };
  headers['content-security-policy'] = {
    value: [
      "default-src 'self'",
      "script-src 'self'",
      "style-src 'self' 'unsafe-inline'",
      "img-src 'self' data:",
      "font-src 'self' data:",
      "connect-src 'self'",
      "frame-ancestors 'self'",
      "base-uri 'self'",
      "form-action 'self'"
    ].join('; ')
  };

  // 静态资源标记为可长期缓存(前提是文件名带内容哈希)
  var uri = event.request.uri;
  if (/\.(css|js|woff2?|svg|png|jpg|webp|avif)$/.test(uri)) {
    headers['cache-control'] = { value: 'public, max-age=31536000, immutable' };
  } else if (/\.html$/.test(uri) || uri.endsWith('/')) {
    headers['cache-control'] = {
      value: 'public, max-age=300, stale-while-revalidate=86400'
    };
  }

  return response;
}

CSP 上线前先用 Report-Only 模式跑一周,收集违规报告再收紧,直接上强制模式很容易把页面搞坏。

下一步

把云的复杂度交给我们,你只管做业务

留下需求,沐杉云的解决方案架构师会在一个工作日内联系你,提供免费的现状评估、迁移方案草案与 TCO 测算表。