【问题标题】:Application Load Balancer https request to EC2 nodejs running on port 4000应用程序负载均衡器 https 请求在端口 4000 上运行的 EC2 nodejs
【发布时间】:2020-09-18 23:39:49
【问题描述】:

我有一个使用 HTTPS 的应用程序负载均衡器,它将向我的 EC2 实例发出请求。我已将 ALB 侦听器配置为 HTTP/HTTPS,然后将目标组(用于应用程序负载均衡器)指定为 EC2 实例。

在这个 EC2 实例上,我运行了两件事:1)一个网站 2)一个 nodejs 服务(在端口 4000 上)

在目标组中,我已经两次指定了相关的 EC2 实例。 (一个端口号为 80,另一个端口号为 4000)。在端口 4000 上,健康检查似乎失败了(即使服务仅在端口 4000 上运行)。

当我向我的网站发出 htttps 请求时,响应很好。但是,当我向我的 nodejs 服务(在端口号 4000 上运行)发出 https 请求时,它给出了连接被拒绝错误。

【问题讨论】:

  • 您好,您为什么注册了两次?您的差异化程度如何?这个目标组中的任何东西都可以被路由到,所以它会尝试在不同端口上运行两次的实例之间分配流量:)

标签: node.js amazon-web-services amazon-ec2 https load-balancing


【解决方案1】:

一个目标组应该只转发给一个应用程序。因此,您需要为您的网站和节点 js 服务设置一个单独的目标组。然后使用 ALB 使用 advanced routing 来确定要加载的内容。

上面的一个例子是:

  • /api/* 的路径转发到节点 js 目标组
  • 默认转发到网站。

其次,您的健康检查必须通过您的节点 js 应用程序,它当前返回一个 404,表示您正在检查的主机路径不可用。

最后确保您基于监听器配置(http/https 和端口)进行连接,而不是来自目标组的端口。

【讨论】:

  • 你好 Mokugo。感谢您的回复。所以我的网站部署在以下主机名上:taboo-game.com 我的 nodejs 服务在端口号 4000 上运行。但是,当我尝试使用 taboo-game.com:4000/category 访问它时它失败了。但是,当我直接输入 EC2 实例的 IP 地址而不是 taboo-game.com 时,它可以正常工作
  • 您能否检查以下内容,具有 nodejs 服务的目标组将目标显示为健康,目标组的侦听器正在使用端口 4000,并且负载均衡器上的安全组允许在端口 4000 上的入站访问
  • 再次完成所有步骤。非常感谢木悟!!!你是救生员。
猜你喜欢
  • 1970-01-01
  • 2022-12-05
  • 2018-07-05
  • 2013-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多