【问题标题】:Cached content in Azure CDN from Microsoft expires too early来自 Microsoft 的 Azure CDN 中的缓存内容过早过期
【发布时间】:2021-06-03 15:31:00
【问题描述】:

我们使用标准 Microsoft Azure CDN 为 Web 应用程序提供图像。这些图像被请求为 /api/img?param1=aaa&param2=bbb,因此我们缓存了每个唯一的 URL。缓存期限为 7 天。我们还覆盖了“Cache-Control”标头,以便客户端浏览器仅缓存图像 1 小时。

问题是,图像不会在缓存中保留 7 天。请求图像后的第一天,它们似乎在 CDN 中(我验证 X-Cache 标头并返回“TCP_HIT”),但是如果我在 2-3 天后发出相同的请求,大约 25% 的图像不再缓存(X-Cache 标头是“TCP_MISS”)。源服务器接收并记录请求,所以我确信它们绕过了 CDN。

对此有什么解释吗?是否必须设置其他参数才能正确缓存图像?

我们使用以下设置:

  1. 缓存规则“缓存每个唯一的 URL”
  2. 规则引擎:
  • 如果 URL 路径以 /api/img 开头
  • 然后缓存过期:[缓存行为] 覆盖,[持续时间] 7 天
  • 然后修改响应头:Overwrite, "Cache-Control", "public, max-age=3600"

【问题讨论】:

    标签: azure caching azure-cdn


    【解决方案1】:

    来自 CDN 产品组的一些人:

    • 对于除 Verizon Premium SKU 之外的所有 SKU,max-age 和缓存过期是一回事,因此 2c 会覆盖 2b。
    • 如果条目未被使用,CDN 保留从 CDN 中刷新条目的权利 - 使用 LRU 算法驱逐缓存项。
    • Verizon Premium SKU offers 能够具有两种不同的年龄值,一种用于浏览器到边缘(“外部 Max-Age”),另一种用于边缘到源(原始到期时间,或强制覆盖时间 - 请参阅文档)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-13
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多