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

Caching 在浏览器和AWS CDN中缓存HTTP请求,但不在中间代理中缓存,caching,proxy,browser-cache,amazon-cloudfront,Caching,Proxy,Browser Cache,Amazon Cloudfront,我使用AWSCDN来服务HTTP请求。我的用例是,我希望响应缓存在浏览器和CDN中,但不在中间代理中 通过设置: Default TTL: 21600 在CDN分发缓存行为中,CDN将其缓存6小时 和背景 Cache-Control: Private, max-age=21600 在origin中,使响应缓存在浏览器中保持6小时 现在我还有一个场景,我想在CDN和浏览器中选择性地缓存文件。 我尝试设置最小TTL:0,以便由origin设置的缓存控制头在CDN上生效。但由于我不希望它被中间代理

我使用AWSCDN来服务HTTP请求。我的用例是,我希望响应缓存在浏览器和CDN中,但不在中间代理中

通过设置:

Default TTL: 21600
在CDN分发缓存行为中,CDN将其缓存6小时

和背景

Cache-Control: Private, max-age=21600
在origin中,使响应缓存在浏览器中保持6小时

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

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

您看过s-maxage缓存控制头了吗

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

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