Caching Akamai缓存未使用新的到期日期更新

Caching Akamai缓存未使用新的到期日期更新,caching,nginx,webserver,cdn,akamai,Caching,Nginx,Webserver,Cdn,Akamai,我们的网站使用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

我们的网站使用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天后,在浏览器中,我们看到如下内容:

缓存控制:公共,无缓存,必须重新验证

基本上,数据没有缓存在浏览器端,对于每个请求,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。我的理解正确吗?有没有办法只更新过期数据而不发送完整数据

谢谢,
Nitesh

您是否通过点击浏览器“刷新”进行测试 点击浏览器刷新时,检查“请求”标题。它将显示浏览器发送If-Modified-Since以及缓存控件:0以强制重新加载对象


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

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