node.js - 如何将 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/
什么都没有发生并以
内部错误 - 服务器连接终止
我在这里缺少什么?
解决方案
验证的第一步是检查负载均衡器的目标组。转到目标组并验证目标和运行状况检查。
在这里你会看到状态,如果它不健康然后后端没有响应 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 令牌。
推荐阅读
- apache-kafka - Kafka Streams:在重新平衡期间存储状态
- javascript - 设备主体内容无法缩放以匹配视口的宽度
- ui-automation - 什么决定了通用 XAML 控件的哪一部分可以通过 UIAutomation 访问
- python - Tensorflow:如何将 4 阶张量的对角元素找到 3 阶张量
- java - 如何将 maven 存储库中的 javadocs 附加到您自己的 javadocs
- go - 去 gRPC 流作用域
- python - 在张量流 Python 中对线性回归模型使用预测
- vim - 一键重复上次搜索?
- metrics - 计算递归函数时的圈复数
- c# - 为正确的数据传输构建 TCP 消息