sea*_*son 5 amazon-web-services amazon-cloudfront
我在 AWS Cloudfront 后面有一个 API,多年来它在我们的前端应用程序中运行良好。最近,在功能发布后,我注意到一些用户报告数据未保存并且应用程序挂起。经过长时间的调查,我发现当 PUT 请求的 JSON 正文大于 8kb 时,我们的 Cloudfront 发行版将返回 403 Forbidden 错误。少一点就可以,多一点就返回 403。我通过发送正文数据大小不断减小的 PUT 请求来验证这一点,直到收到预期的 201 Created 响应,然后检查发送的正文的大小。JSON 格式正确。
错误在大约 170 毫秒内返回,并包含来自 Cloudfront 的标头X-Cache: Error from cloudfront
我已经寻找了大小限制的设置,我已经尝试禁用 WAF 规则,我已经尝试将“压缩对象”打开/关闭。启用实时日志会对接受的最大数据产生某种影响吗?看起来很疯狂,但我对这个问题有点困惑。
我很乐意向大家展示来自 Cloudwatch 的某种日志来提供帮助,但是未通过 Cloudfront 的请求不会记录在 Cloudwatch 中,而且我无法设置任何类型的日志记录来更好地了解原因它在呕吐。
正如最初的预感,这是 WAF ACL 规则问题。
阻止 ACL 已应用于应用程序负载均衡器,因此在 Web ACL 列表中找到它需要检查负载均衡器所在的区域(例如 us-west-2),或者通过检查负载均衡器的集成服务,您可以在其中查看任何 AWS WAF 规则:
具体规则位于名为 的 AWS 托管规则集中AWS-AWSManagedRulesCommonRuleSet。只需将SizeRestrictions_BODY规则设置为“计数”,而不是“使用规则中定义的操作”
这显然会影响到您的应用程序的请求,因此请按照您的意愿进行处理。
| 归档时间: |
|
| 查看次数: |
3402 次 |
| 最近记录: |