首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CloudFront -转发所有查询字符串,缓存基于无可能?

CloudFront -转发所有查询字符串,缓存基于无可能?
EN

Server Fault用户
提问于 2020-04-16 18:00:05
回答 1查看 4.7K关注 0票数 1

背景

我有一个为Websocket连接服务的EC2实例,其中CloudFront位于顶部。现在,我正在提供无法在CloudFront中缓存的动态内容,因此通过将“基于所选请求头的缓存”选项设置为"All“,有效地禁用了对象缓存。

我还需要处理查询字符串,所以我不得不处理“查询字符串转发和缓存”选项。

问题

我的问题基本上是标题:

我可以让CloudFront转发所有查询字符串,但缓存基于无?

我似乎有三种不同的选择,但我可能遗漏了什么。

现在,我已经将选项设置为“基于all转发所有缓存”。

免责声明

实际上,我不知道目前发生的事情是否会以任何方式影响我的应用程序(看起来并不是这样)。不过,希望在阅读了一些答案之后,我能够理解选择该选项后缓存的内容。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2020-04-16 23:00:26

我相信你误解了Forward all的意思,基于all的缓存,这不是很清楚的措辞。它过于简化,甚至错误地描述了该选项的实际操作。

选择此选项不会启用缓存或导致更多的缓存。事实上,它会导致较少的缓存。此选项将任何/所有查询字符串参数添加到缓存键,这意味着具有完全相同路径、完全相同的白名单标题但不同查询字符串参数键和/或值的任何两个请求都被视为两个不同对象的无关请求,因此,即使第一个请求导致缓存响应,第二个请求也不会使用该缓存响应。

更好的分阶段可能是转发所有,并且只有当所有对象都相同时,才有可能从缓存中为对象提供服务。但我怀疑,Rhat仍有一些有待改进的地方,但也许它澄清了一些事情。

如果所有标头都被白化以进行转发,则无论此设置如何,都不会缓存任何内容。如果来自原点的Cache-Control标头指示CloudFront不缓存对象,则情况也是如此。由于没有缓存,“基于所有的缓存”没有任何影响,CloudFront将按照您的意愿在这里执行。

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1012625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档