![]() |
1
1
使用CloudFront的简单解决方案需要对路径设计稍作更改: 铲斗:
浏览器:
CloudFront原点路径(在“原点”选项卡上)
将配置为原点路径的任何内容添加到 开始 在将请求发送到源服务器之前,浏览器请求的内容。 请注意,更改这一点意味着您还需要执行缓存失效,因为响应是基于请求的内容而不是提取的内容进行缓存的。
这里有一个潜在的竞争条件,在您更改配置和无效化之间——配置更改和无效化请求之间的操作顺序没有相关性——配置更改
然后
失效可能会在之后完成,¹因此可能需要失效、更新配置、失效、验证分发已进入稳定状态,然后再次失效。您不需要单独使对象无效,只需
在CloudFront中更复杂的路径重写需要Lambda@Edge原始请求触发器(或者您可以使用查看器请求,但这些请求运行得更频繁,因此成本更高,并增加了总体延迟)。
无效化请求——虽然这没有文档记录,而且严格来说是轶事——似乎涉及一些时间旅行。失效是有时间戳的,它们似乎会使时间戳之前缓存的任何内容失效,而不是在传播到边缘位置之前。从架构上讲,如果CloudFront的设计使失效不会主动清除内容,而只是作为缓存的指令,如果缓存对象早于失效请求上的时间戳,允许在后台进行实际清除,则可以将其视为过时对象。对于任何其他解释来说,失效似乎完成得太快了。这意味着在发行版返回稳定版本后创建一个失效请求
|
![]() |
Brad Parks · 如何确保我的CDN按来源缓存CORS请求? 6 年前 |
![]() |
Kevin · CDN或下载到目录? 7 年前 |
![]() |
Greg · CDN是如何工作的? 7 年前 |
![]() |
Aleks · 如何在React项目中使用CDN导入 7 年前 |
![]() |
Ilja · firebase托管是否受益于CloudFlare? 7 年前 |