我们有一个 Spring boot 服务器,过去几年一直运行良好。几天前,它开始返回 504 网关超时错误,使用 Postman(Windows、Firefox)发送请求。立即收到回复。该调用并不期望来自其他服务器或任何东西的回复,即使是返回 ok 的最简单的状态检查也会以同样的方式失败。是服务器中唯一运行的东西,所以不可能过载。我检查了CPU使用率,基本上是空闲的。
我在其他计算机(Ubuntu、Firefox)上进行了测试,结果显示“403 Amazon CloudFront 发行版配置为阻止来自您所在国家/地区的访问”,这不是真的,因为我的国家/地区仍在允许列表中。
最近代码发生了变化,但我无法将任何内容与这种失败联系起来。本地运行良好。我对AWS知之甚少,我继承了所有这些设置。有人可以指导我诊断到底发生了什么吗?我想确定这是否是我的代码中的问题(出现在服务器中但不在本地)或者是否是 AWS 的问题。
由于我很着急,终于聘请了支持人员。似乎在某个时刻,Docker 中某处设置的端口(不要问我具体在哪里)发生了更改,并且不再是 CloudFront 中与该实例关联的端口集。这是通过命令发现的:docker ps 打印如下: 0.0.0.0:8081->8080/tcp, :::8081->8080 8081 是 Docker 配置中的值,但在 CloudFront 中我们有一个 8080。我最后也将其更改为 8081,现在它可以工作了。 当然,错误消息非常令人困惑。