【问题标题】:How to send Akamai cache expiration headers?如何发送 Akamai 缓存过期标头?
【发布时间】:2012-07-25 20:15:59
【问题描述】:

我有一个网站,每次您上传一张图片时,它都会以各种帧大小呈现。 cron 作业每 10 分钟运行一次,查看在此期间是否上传了任何新图像,如果是,它会生成所有需要的帧。

由于此 cron 每 10 分钟运行一次,因此在内容(例如文章)上线和图像可用之间有一段时间。因此,在此期间会显示带有网站徽标的通用占位符图像。

由于 Akamai 缓存图像,因此当站点用户加载具有尚未由 cron 呈现的图像的页面时,将为该图像路径显示一个静态占位符,并且 Akamai 将缓存该图像。即使图像稍后渲染并且可用,用户仍会从 Akamai 获得缓存版本。

一种解决方案是在 cron 渲染这些图像时破坏这些图像的“年龄”。但是,Akamai 大约需要 8 分钟才能返回新的。

有没有其他解决方案,我可以通过缓存过期标头告诉 Akamai 每 10 秒返回一次,直到收到新图像,一旦完成就不再返回并继续显示缓存的版本?

【问题讨论】:

    标签: php caching http-headers cdn akamai


    【解决方案1】:

    是的,在某种程度上。如果您从服务器端和 akamai 设置中结合几个步骤。

    概念如下:边缘服务器交付它拥有的内容。如果您使用缓存控制标头,例如来自 php,则相应数字属性的 akamai 配置设置中的 TTL 设置会将它们吹走,而是使用它们。这意味着您通过路径、文件类型、扩展名等告诉它多久访问一次您的源服务器。然后从客户端,它提供给最终用户的任何文件,边缘服务器被请求内容的频率并不重要,除非您不在该级别缓存,将其回滚给您。

    使用这些配置设置,您可以指定特定文件具有确切的过期时间 - 或根本不缓存它。

    因此,如果在服务器端,如果您在页面上指定 placeholder.jpg 并告诉 akamai 根本不要缓存该图像,那么每次边缘服务器收到请求时它都会返回。一旦图像就位,placeholder.jpg 就不再存在于您的页面上,而是有 sizeA.jpg,它将遵守常规图像缓存时间。

    这可能并不完全理想,但除了手动清除页面之外,这是您可以做的最好的事情,据我所知,他们没有 API 调用来清除您可以触发的页面(加上它无论如何,缓存清除需要 7-10 分钟才能通过它们的 n/w 传播)。

    【讨论】:

      猜你喜欢
      • 2015-12-01
      • 2015-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-14
      相关资源
      最近更新 更多