首页 > 解决方案 > 如何将 aws 负载平衡 (ELB) 连接到节点端口 8081

问题描述

我有 2 个 EC2 实例,我的节点应用程序在 8081 端口上运行

webserver 1 

http://ec2-3-17-133-60.us-east-2.compute.amazonaws.com:8081/

webserver 2

http://ec2-3-14-71-215.us-east-2.compute.amazonaws.com:8081/

现在我正在尝试从负载均衡器连接它

我为此负载均衡器配置:

Load Balancer Protocol -> HTTP

Load Balancer Port -> 80

Instance Protocol -> HTTP

Instance Port -> 8081

Cipher -> N/A

SSL Certificate -> N/A

但是当我尝试打开我的 elb 网址时

http://myfirstelb-1516157627.us-east-2.elb.amazonaws.com/

什么都没有发生并以

内部错误 - 服务器连接终止

我在这里缺少什么?

标签: node.jsamazon-web-servicesamazon-elb

解决方案


验证的第一步是检查负载均衡器的目标组。转到目标组并验证目标和运行状况检查。

在此处输入图像描述

在这里你会看到状态,如果它不健康然后后端没有响应 LB,

原因之一是安全组不允许来自端口的流量8081

ping 路径不存在的另一个原因

为健康检查创建一个目标页面,并将其路径指定为 ping 路径。

在此处输入图像描述

此 ping 应返回200

连接超时

首先,验证您是否可以使用目标的私有 IP 地址和运行状况检查协议直接从网络内连接到目标。如果无法连接,请检查实例是否过度使用,如果太忙而无法响应,请向目标组添加更多目标。如果可以连接,则可能是目标页面在健康检查超时期限之前没有响应。为健康检查选择更简单的目标页面或调整健康检查设置。

目标没有返回成功的响应码

默认情况下,成功代码为 200,但您可以选择在配置运行状况检查时指定其他成功代码。确认负载均衡器预期的成功代码,并且您的应用程序配置为在成功时返回这些代码。

您面向 Internet 的负载均衡器已附加到私有子网

验证您是否为负载均衡器指定了公有子网。公共子网具有到您的虚拟私有云 (VPC) 的 Internet 网关的路由。

安全组或网络 ACL 不允许流量

负载均衡器的安全组和负载均衡器子网的任何网络 ACL 必须允许来自客户端的入站流量和到侦听器端口上客户端的出站流量。

以下是您可以从 AWS 文档中获得的内容

HTTP 500:内部服务器错误 可能的原因:

您配置了 AWS WAF Web 访问控制列表 (Web ACL),执行 Web ACL 规则时出错。

您配置了一个侦听器规则来对用户进行身份验证,但以下情况之一为真:

  • 负载均衡器无法与 IdP 令牌端点或 IdP 用户信息端点通信。验证您的负载均衡器的安全组和您的 VPC 的网络 ACL 是否允许对这些终端节点进行出站访问。验证您的 VPC 是否可以访问 Internet。如果您有面向内部的负载均衡器,请使用 NAT 网关启用 Internet 访问。

  • IdP 返回的声明大小超过了负载均衡器支持的最大大小。

  • 客户端提交了一个没有主机头的 HTTP/1.0 请求,负载均衡器无法生成重定向 URL。

  • 客户端提交了没有 HTTP 协议的请求,负载均衡器无法生成重定向 URL。

  • 请求的范围不返回 ID 令牌。

AWS LB http-500 问题


推荐阅读