当响应代码是设置了自定义错误响应的错误时,CloudFront是否会删除Origin响应正文?

问题描述 投票:0回答:1

我将在前言中说,在我的情况下,答案似乎是否定的,但是我可能错误配置了我的设置,并且在文档中的任何地方都找不到这一点,所以我想知道它是如何工作的。

定义自定义错误响应时,从Origin中选择错误代码,返回要返回的响应页面,并使用错误代码替换Origin中的错误代码。

通常这可以按预期工作 - 例如,当Origin提供403时,我设置CloudFront返回“error.html”,代码为404.当探测我知道应该返回403的链接时,我收到“error.html” 404.不幸的是,似乎当Origin提供它自己的身体时(我已经看到这种情况发生在JSON和HTML页面上),CloudFront只替换了标题 - 错误代码正确地从403切换到404,但是body是Origin发送的 - 没有提供“error.html”。

这是预期的行为吗?文档在任何地方都提到了吗?

amazon-web-services amazon-cloudfront
1个回答
1
投票

你所描述的不是预料之中的。

配置自定义错误页面和自定义响应代码应将整个响应替换为自定义响应 - 标头和正文 - 以及自定义状态代码 - 不包括原始响应标头或正文。

如果发生第二个错误 - 也就是说,CloudFront在实际获取自定义错误文档期间遇到错误 - 代码和正文将是第二个请求期间提供的原始数据。

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html

您可以检查响应标头,尤其是Age标头,以验证您没有获得比预期更早的缓存响应。更改自定义错误页面配置不会使任何已缓存的错误响应无效。

使用原始日志交叉检查CloudFront日志,以验证您所看到的内容确实存在。

另请注意,以上所有内容均不适用于与边缘优化的API网关端点关联的“隐藏”CloudFront分配的错误响应,也不适用于Lambda @ Edge自定义错误响应。

© www.soinside.com 2019 - 2024. All rights reserved.