我正在使用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中无法缓存。
有什么方法可以实现这个用例吗?感谢。
答案 0 :(得分:0)
您是否查看过s-maxage
Cache-Control标头?
理论上,你应该能够设置它来指定中间缓存持续时间,同时通过设置适当的最小TTL覆盖它在CloudFront中(如果此值大于s-maxage
值,CloudFront将使用此值而不是s-maxage
值。
您可以使用maxage
旁边的s-maxage
值来设置最终客户端缓存持续时间。