AWS ELB 不健康 4xx

AWS ELB unhealthy 4xx

我正在为使用端口 4000 的后端服务器使用 express.js 和 graphql。我正在尝试将我的服务器与 ELB 连接,但状态 returns 不健康,错误代码为 400 或 404。这些是我关于ELB的设置。

如果我将路径更改为 /graphql 它 returns 400,而只是 / returns 404。当我调用 API 但似乎我应该修复它。谁能告诉我该怎么办?

处理这种情况的标准方法是在您的快速应用程序中定义路径,例如 /health/ping 应该 return HTTP 状态代码 200

如果 /graphql 没有 return HTTP 状态代码 200 LB 将标记目标不健康。

你有两个选择

  • 将成功代码更新为400,LB将标记目标健康
  • 定义路径,如 //health 和 return 状态代码 200

以快递为例

app.get('/health',function(req,res){
res.status(200).send("instance is healthy");
})

然后LB的设置会

或者,如果您想在不更改应用程序的情况下继续使用,则可以使用以下方法。

Apollo默认支持在这个URL/.well-known/apollo/server-health(source)进行简单的健康检查,所以你可以添加更改目标组中的路径从/到URL