【发布时间】:2021-01-22 14:40:13
【问题描述】:
我们有一个通过 CloudFront 提供服务的网站。本周某个时候,源 EC2 (ECS) 服务器崩溃了,并在短时间内开始返回 502 错误:
502 错误网关 | Nginx
这个问题很快得到解决,但我们有几个用户仍然在他们的浏览器中看到错误。他们都在使用 Google Chrome,而且问题似乎一直存在(就像浏览器/CloudFront 已经缓存了错误)。一位用户通过进入隐身模式解决了该问题,另一位用户每次点击我们新闻通讯中的链接时都会看到该问题。其他一些用户仅通过使用不同的浏览器解决了这个问题。
我不确定如何开始调试。另外,我想如果接收到 502 错误,它不会缓存页面内容。另外,我无法从我这里复制。
为问题添加额外信息:
我不是在寻找有关如何停止或管理 502 错误网关错误的建议。我们知道为什么会发生这些问题(ed)这个问题纯粹是关于在将缓存的 502 错误交付给用户后修复它们的建议。
从目前的反馈来看,我们似乎可以在 10 秒后在 CloudFront 中取消缓存 502 错误。此功能已启用,但问题仍然存在。
我的感觉是用户的浏览器已经缓存了 503 错误页面并且没有从服务器请求更新。在不让他们清除缓存的情况下,有没有办法将 CloudFront 或他们的浏览器设置为仅在短时间内缓存 502 错误,然后再从服务器请求更新页面?
另外,再想想这个。错误是'502 Bad Gateway | Nginx' 这甚至来自 CloudFront 吗?我的服务器可以发送很长时间吗 带有 502 错误的 Cache-Control 标头?
【问题讨论】:
-
Cloudfront 默认缓存 5XX。您可以调整此行为:docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/…
-
@jordanm 谢谢,但是看着那个文档,他们将 5XX 缓存了 10 秒。这并不能解释为什么用户会在 3 天后看到错误......我已经继续并添加了一个自定义的 500 页面,无论如何设置了 10 秒。但最好知道为什么用户仍然有延迟天数。
标签: amazon-web-services nginx amazon-cloudfront http-status-code-502