【问题标题】:Akamai Cache not getting updated with new expiry dateAkamai Cache 未使用新的到期日期进行更新
【发布时间】:2015-07-01 07:21:11
【问题描述】:

我们的网站使用 akamai-CDN 来提供图像,我们的源服务器是 nginx。 在 nginx 中,我们最初将到期时间设置为修改日期 + 45 天。

location ~* \.      (jpg|jpeg|gif|png|bmp|ico|pdf|flv|swf|exe|html|htm|txt|css|js|ttf) {
   add_header        Cache-Control public;
   add_header        Cache-Control must-revalidate;
   expires            modified +45d;
}

但 45 天后,我们在浏览器中看到了这样的内容:

Cache-Control:public, no-cache, must-revalidate.

基本上,数据并没有在浏览器端缓存,并且对于每个请求,akamai 都会向我们的服务器发送一个请求。

X-Cache:TCP_IMS_HIT from a203-92-39-77.deploy.akamaitechnologies.com (AkamaiGHost/7.1.0.2-14656242) (-)

所以,我们将 nginx conf 更改为 expires 45d:

location ~* \.(jpg|jpeg|gif|png|bmp|ico|pdf|flv|swf|exe|html|htm|txt|css|js|ttf) {
   add_header    Cache-Control public;
   add_header       Cache-Control must-revalidate;
   expires          45d;
}

这影响应该看到 akamai 缓存和浏览器缓存更新为 45d,因此 akamai 不应再次调用我们的服务器,但我仍然看到数据未缓存且 akamai 状态仍为:

X-Cache:TCP_IMS_HIT

我现在唯一能想到的是,由于我们没有配置服务器,所以当 akamai 调用后端服务器时,它会发送文件未更改的状态,因此我应该将状态与图像一起发送为 200。我的理解正确吗?有没有办法只更新到期数据而不发送完整数据。

谢谢, 尼特什

【问题讨论】:

    标签: caching nginx webserver cdn akamai


    【解决方案1】:

    您是否通过点击浏览器“刷新”进行测试 当您点击浏览器刷新时,请检查“请求”标头。它将显示浏览器发送一个 If-Modified-Since 以及 Cache-control : 0 来强制重新加载对象。

    如果您正在执行上述操作,正确的测试方法是在浏览器地址栏上按 Enter,在这种情况下,浏览器不会发送 IMS 请求标头。

    【讨论】:

      【解决方案2】:

      您应该检查 akamai 配置,而不是检查 TTL 设置的来源。如果它是 45 天,那么您肯定应该在原始服务器中看到任何请求。如果这只是在 akamai 和浏览器之间,那么请查看 akamai 配置中的下游缓存规则。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多