为受限端口或连接冲突覆盖侦听器端口 - AWS Global Accelerator

为受限端口或连接冲突覆盖侦听器端口

默认情况下,加速器使用您在创建侦听器时指定的协议和端口范围将用户流量路由到 AWS 区域中的端点。例如,如果您定义了一个接收端口 80 和 443 上的 TCP 流量的侦听器,则加速器会将流量路由到端点上的这些端口。

但是,在添加或更新端点组时,您可以覆盖用于将流量路由到端点的侦听器端口。例如,您可以创建一个端口覆盖,其侦听器在端口 80 和 443 上接收用户流量,但是您的加速器将这些流量分别路由到端点上的端口 1080 和 1443。

使用端口覆盖的一个好处是可以帮助避免连接冲突,在某些情况下,连接冲突可能会导致 Global Accelerator 出现间歇性连接问题,从而导致 TCP 连接时间延迟。当用户(具有相同的源 IP 和源端口)访问 Global Accelerator 中的资源时,可能会发生这些冲突。您可以通过在加速器中配置端口覆盖来防止冲突,从而避免延迟。有关更多信息,请参阅 如何避免导致 TCP 连接时间延迟的连接冲突

覆盖端口还可以帮助您避免在受限端口上侦听时出现问题。在端点上运行不需要超级用户(root)权限的应用程序会更安全。但是,在 Linux 和其它类似 Unix 的系统中,您必须具有超级用户权限才能在受限端口(1024 以下的 TCP 或 UDP 端口)上进行侦听。通过将侦听器上的受限端口映射到端点上的非受限端口,可以避免此问题。在 Global Accelerator 后面的端点上运行没有 root 访问权限的应用程序时,您可以接受受限端口上的流量。例如,您可以将侦听器端口 443 覆盖为端点端口 8443。

对于每个端口覆盖,您可以指定用于接受来自用户的流量的侦听器端口,以及 Global Accelerator 将该流量路由到的端点端口。有关更多信息,请参阅 添加标准端点组

在创建端口覆盖时,请记住以下几点:

  • 端点端口不能与侦听器端口范围重叠。您在端口覆盖中指定的端点端口不能包含在您为加速器配置的任何侦听器端口范围中。例如,假设您有两个用于加速器的侦听器,并且您已将这些侦听器的端口范围分别定义为 100-199 和 200-299。例如,在创建端口覆盖时,您无法定义从侦听器端口 100 到端点端口 210 的端口覆盖,因为端点端口(210)包含在您定义的侦听器端口范围(200-299)中。

  • 端点端口不得重复。如果加速器中的一个端口覆盖指定了一个端点端口,则您不能使用来自其它侦听器端口的端口覆盖来指定相同的端点端口。例如,您不能指定从侦听器端口 80 到端点端口 90 的端口覆盖,以及从侦听器端口 81 到端点端口 90 的覆盖。

  • 运行状况检查继续使用原始端口。如果您为配置为运行状况检查端口的端口指定端口覆盖,则运行状况检查仍使用原始端口,而不是覆盖端口。例如,假设您在侦听器端口 80 上指定了运行状况检查,并且还指定了从侦听器端口 80 到端点端口 480 的覆盖端口。运行状况检查会继续使用端点端口 80。但是,通过端口 80 传入的用户流量会流向端点上的端口 480。

    此行为可保持网络负载均衡器、应用程序负载均衡器、EC2 实例和弹性 IP 地址端点之间的一致性。由于您在 Global Accelerator 中指定端口覆盖时,网络负载均衡器和应用程序负载均衡器不会将运行状况检查端口映射到不同的端点端口,因此若 Global Accelerator 将运行状况检查端口映射到 EC2 实例和弹性 IP 地址端点的不同端点端口,则会导致不一致的行为。

  • 安全组设置必须允许端口访问。确保安全组允许流量到达您在端口覆盖中指定的端点端口。例如,如果您将侦听器端口 443 覆盖为端点端口 1433,请确保安全组中为该应用程序负载均衡器或 Amazon EC2 端点设置的任何端口限制都允许端口 1433 上的入站流量。