在浏览器和AWS CDN中缓存HTTP请求,但不在中间代理中缓存

时间:2015-10-08 11:21:22

标签: caching proxy browser-cache amazon-cloudfront

我正在使用AWS CDN来提供HTTP请求。我的用例是,我希望响应在浏览器和CDN中缓存,但不能在中间代理中缓存。

通过设置:

Default TTL: 21600

在CDN分发缓存行为中,CDN将其缓存为6小时

并设置

Cache-Control: Private, max-age=21600

in origin,在浏览器中将响应缓存为6小时。

现在我有一个额外的场景,我想在CDN和浏览器中有选择地缓存文件。 我尝试设置Minimum TTL : 0,因此由origin设置的缓存控制标头在CDN上生效。但由于我不希望它被中间代理缓存,我必须添加私有缓存控制,这使得它在CDN中无法缓存。

有什么方法可以实现这个用例吗?感谢。

1 个答案:

答案 0 :(得分:0)

您是否查看过s-maxage Cache-Control标头?

理论上,你应该能够设置它来指定中间缓存持续时间,同时通过设置适当的最小TTL覆盖它在CloudFront中(如果此值大于s-maxage值,CloudFront将使用此值而不是s-maxage值。

您可以使用maxage旁边的s-maxage值来设置最终客户端缓存持续时间。