【问题标题】:AWS Load Balancer to multiple ports on the same server with no PATAWS 负载均衡器连接到同一台服务器上的多个端口,无需 PAT
【发布时间】:2018-08-17 23:41:19
【问题描述】:

我有一个 EC2 网络服务器,它提供一个侦听端口 80,8080、443 和 8443 的应用程序。外部客户端需要在这些端口上与其通信(无端口转换)。我试图把它放在负载均衡器后面,但过多的所需端口让我感到困惑。

我有一个 ALB 在 4 个端口上侦听,所有端口都转发到同一个目标组。目标组的默认端口为 443,但 Web 服务器已注册为 4 个不同的目标,每个目标对应一个端口 (80,8080,443,8443)。

这是解决此问题的正确方法吗?流量似乎没有正常流动。我担心 ALB 在 443 上接收流量并将其转发到服务器的另一个端口,从注册目标中选择端口。我需要 4 个不同的目标群体,每个群体只有 1 个注册目标吗?

【问题讨论】:

    标签: amazon-web-services


    【解决方案1】:

    如果您不想要任何端口转换,则需要设置您的侦听器以使用相同的端口号(80->80、443->443...)连接到后端。

    因此,在您的设置中,您需要后端侦听端口 80、443、8080、8443。

    您需要设置 ALB 侦听器以侦听 80、443、8080、8443。您的侦听器会将请求转发到它正在侦听的同一端口(80 -> 80、443 -> 443,...)

    确保正确设置侦听器类型以匹配您的协议(HTTP 或 HTTP)。如果您的侦听器配置为 443 -> 443 和 HTTPS -> HTTPS,那么您将需要在后端配置 SSL 证书。否则,您可以将侦听器配置为 SSL 终止并执行 HTTPS (443) 到 HTTP (443),但请确保在这种情况下未为 HTTPS 配置后端。

    起初这可能看起来令人困惑 - 事实并非如此。只需将 Listener 视为中间人。他可以重复您的请求(HTTPS -> HTTPS)或翻译(HTTPS -> HTTP)。侦听器可以侦听一个端口 (80) 并转发到另一个端口 (8080)。这些项目中的每一项都是可配置的。

    【讨论】:

    • 目前我有 1 个负载均衡器和 4 个监听器。每个侦听器都转发到同一个目标组,该目标组本身有 4 个目标。似乎发生的情况是流量将在(例如)端口 443 上进入 LB,目标组将选择其中一个目标(例如端口 8080 上的目标)并将流量转发到那里。所以它似乎确实执行了 PAT - 我确定我在翻译中丢失了一些东西(哈!)
    • 每个目标组都会监听一个端口。您将实例分配给该目标组,指定实例正在侦听的端口。在您的情况下,您应该有四个目标组(80、443、8080、8443),其中一个或多个实例侦听与其分配到的目标组相同的端口。转到 AWS 控制台并选择您的目标组。您应该看到列出了四个目标组。现在选择第一个目标组,然后选择“目标”选项卡。您应该使用相同的端口号注册一个或多个实例。对每个目标组重复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-20
    • 1970-01-01
    • 1970-01-01
    • 2017-09-04
    • 2021-07-21
    • 2019-12-10
    • 1970-01-01
    相关资源
    最近更新 更多