与ALB连接的EC2实例在端口3000上显示不正常状态



我已将EC2实例与应用程序负载均衡器连接。我的EC2实例在PORT 80上运行react js应用程序,其中NODE js API在PORT 3000上运行。我想用域名而不是IP地址运行API

以下是我的注册目标-

ALB注册目标

更新-以下是我的应用程序和实例详细信息-

  1. EC2-Ubuntu 18.04+Apache网络服务器
  2. 前端-端口80工作良好(https://wwwdot-mydomain.com(
  3. API-用NODE JS编写,运行在PORT 3000上(所以基本上我正在尝试运行https://wwwdot-mydomain网址:3000(

API使用IPv4运行良好http://x.x.x.50:3000

有人能帮我找出这个错误吗?非常感谢。

从您的问题中,我了解到您的nodejs应用程序运行在x.x.x.50:3000上。因此,您可以通过点击http://x.x.x.50:3000来访问您的应用程序

但是,

我假设当你点击时,你的请求会得到回应

example : http://x.x.x.50:3000/data/ or http://x.x.x.50:3000/employee/1

实际问题是,当ELB命中http://x.x.x.50:3000它将返回404状态,因为您没有为/服务的端点(基于我对后端应用程序的假设(

如果您已经有了/endpoint,请检查它返回的状态代码是什么,以及它是否与ELB目标组中指定的代码匹配

如果你在AWS中检查你的目标组,你可以看到你的预期状态代码是200(默认情况下(,如果ELB得到200以外的任何其他状态代码,它将认为该实例是不健康的。

请注意,您可以将此状态代码更改为健康检查终结点返回的任何代码。同样适用于健康检查URL。

最新更新