最近开始使用网络负载均衡器,它侦听端口 80 并将流量转发到我的目标组。我的自动缩放组配置为将任何新目标添加到此目标组。
但是,我在目标 EC2 实例上的应用程序在端口 8001 上运行,而不是 80。所以我的目标应该在目标组中的端口 8001 下注册。自动缩放配置似乎不支持这一点。自动缩放创建的所有新实例都被添加为端口 80 的目标,并且无法自动指定应该使用哪个端口(对我来说是 8001)。
任何想法如何实现这一点?
最近开始使用网络负载均衡器,它侦听端口 80 并将流量转发到我的目标组。我的自动缩放组配置为将任何新目标添加到此目标组。
但是,我在目标 EC2 实例上的应用程序在端口 8001 上运行,而不是 80。所以我的目标应该在目标组中的端口 8001 下注册。自动缩放配置似乎不支持这一点。自动缩放创建的所有新实例都被添加为端口 80 的目标,并且无法自动指定应该使用哪个端口(对我来说是 8001)。
任何想法如何实现这一点?
目标组中的端口定义就是您要查找的端口定义。目标组中的端口是目标接收流量的端口。侦听器上的端口是负载均衡器侦听请求的端口。
因此,您应该在侦听器上设置端口 80,在目标组上设置端口 8001。
您正在使用哪种应用程序(Web 服务器、应用程序服务器……)?也许 ALB 更适合您,因为它适用于 OSI 模型的第 7 层,因此它能够处理 HTTP 标头,例如。
回到你的问题;为了能够将流量转发到在端口 8001 上运行应用程序的 EC2 实例,您必须将目标组上的端口设置为 8001。Auto-scaling 组不知道它提供的 EC2 上运行的应用程序,也不知道该应用程序使用的端口。
所以最终流程是这样的:
LB 侦听端口 80 并将流量转发到端口 8001 上的目标组。然后此目标组将流量发送到端口 8001 上的目标(您的 EC2 实例)。