为网络负载均衡器创建侦听器 - Elastic Load Balancing
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

为网络负载均衡器创建侦听器

侦听器是用于检查连接请求的进程。您可在创建负载均衡器时定义侦听器,并可随时向负载均衡器添加侦听器。

先决条件

  • 您必须为默认操作指定目标组。有关更多信息,请参阅 为网络负载均衡器创建目标组

  • 您必须指定 TLS 监听器的 SSL 证书。负载均衡器先使用证书终止连接,然后解密来自客户端的请求,最后再将请求路由到目标。有关更多信息,请参阅 网络负载均衡器的服务器证书

  • 您无法在 dualstack 负载均衡器上将 IPv4 目标组与 UDP 侦听器结合使用。

  • QUIC 和 TCP_QUIC 侦听器不支持在 dualstack 负载均衡器或关联安全组的负载均衡器上使用。

  • QUIC 和 TCP_QUIC 侦听器不支持在关联安全组的负载均衡器上使用。

  • 在任何给定时间,网络负载均衡器上仅允许存在一个 QUIC 或 TCP_QUIC 侦听器。

  • 在具有 UDP 或 TCP_UDP 侦听器的网络负载均衡器上,不允许配置 QUIC 和 TCP_QUIC 侦听器。

添加侦听器

您为侦听器配置用于从客户端连接到负载均衡器的协议和端口,并为默认侦听器规则配置目标组。有关更多信息,请参阅 侦听器配置

Console
添加侦听器
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择负载均衡器

  3. 选择负载均衡器的名称以打开其详细信息页面。

  4. Listeners(侦听器)选项卡上,选择 Add listener(添加侦听器)。

  5. 对于协议,请选择 TCPUDPTCP_UDPTLS、QUIC 或 TCP_QUIC。保留默认端口或键入其他端口。

  6. 对于默认操作,选择一个要将流量转发到的目标组。

    要添加其他目标组,请选择添加目标组,并根据需要更新权重。

    如果您还没有能满足您需求的目标组,请选择创建目标组,以立即创建一个目标组。有关更多信息,请参阅 创建目标组

  7. [TLS 侦听器] 对于 Security policy (安全策略),建议您保留默认安全策略。

  8. [TLS 侦听器] 对于默认 SSL/TLS 服务器证书,请选择默认证。书。您可从以下任一来源选择证书:

    • 如果您使用 Amazon Certificate Manager 创建或导入了证书,请选择来自 ACM,然后从证书(来自 ACM)中选择该证书。

    • 如果您使用 IAM 导入了证书,请选择来自 ACM,然后从证书(来自 ACM)中选择该证书。

    • 如果您有证书,请选择导入证书。选择导入到 ACM 或者导入到 IAM。对于证书私有密钥,请复制并粘贴私有密钥文件(PEM 编码的文件)的内容。对于证书正文,请复制并粘贴公有密钥证书文件(PEM 编码的文件)的内容。对于证书链,请复制并粘贴证书链文件(PEM 编码的文件)的内容,除非您使用的是自签名证书并且浏览器是否隐式接受证书并不重要。

  9. [TLS 侦听器] 对于 ALPN policy (ALPN 策略),请选择一个策略以启用 ALPN,或选择 None (无) 以禁用 ALPN。有关更多信息,请参阅 ALPN 策略

  10. (可选)要添加标签,请展开侦听器标签。选择添加新标签,然后输入标签键和标签值。

  11. 选择添加

  12. [TLS 侦听器] 要向可选证书列表添加证书,请参阅 将证书添加到证书列表

Amazon CLI
创建目标组

如果您没有可以用于默认操作的目标组,请立即使用 create-target-group 命令来创建一个目标组。有关示例,请参阅 创建目标组

添加 TCP 侦听器

使用 create-listener 命令,指定 TCP 协议。

aws elbv2 create-listener \ --load-balancer-arn load-balancer-arn \ --protocol TCP \ --port 80 \ --default-actions Type=forward,TargetGroupArn=target-group-arn
要添加具有多个目标组的 TCP 侦听器

使用 create-listener 命令,指定 TCP 协议、目标组和权重。

aws elbv2 create-listener \ --load-balancer-arn load-balancer-arn \ --protocol TCP \ --port 80 \ --default-actions '[{ "Type":"forward", "ForwardConfig":{ "TargetGroups":[ {"TargetGroupArn":"target-group-1-arn","Weight":10}, {"TargetGroupArn":"target-group-2-arn","Weight":30} ] } }]'
要添加 TLS 侦听器

使用 create-listener 命令,指定 TLS 协议。

aws elbv2 create-listener \ --load-balancer-arn load-balancer-arn \ --protocol TLS \ --port 443 \ --certificates CertificateArn=certificate-arn \ --ssl-policy ELBSecurityPolicy-TLS13-1-2-Res-2021-06 \ --default-actions Type=forward,TargetGroupArn=target-group-arn
要添加 UDP 侦听器

使用 create-listener 命令,指定 UDP 协议。

aws elbv2 create-listener \ --load-balancer-arn load-balancer-arn \ --protocol UDP \ --port 53 \ --default-actions Type=forward,TargetGroupArn=target-group-arn
要添加 QUIC 侦听器

使用 create-listener 命令,指定 QUIC 协议。

aws elbv2 create-listener \ --load-balancer-arn load-balancer-arn \ --protocol QUIC \ --port 443 \ --default-actions Type=forward,TargetGroupArn=target-group-arn
CloudFormation
要添加 TCP 侦听器

使用 TCP 协议来定义 AWS::ElasticLoadBalancingV2::Listener 类型的资源。

Resources: myTCPListener: Type: 'AWS::ElasticLoadBalancingV2::Listener' Properties: LoadBalancerArn: !Ref myLoadBalancer Protocol: TCP Port: 80 DefaultActions: - Type: forward TargetGroupArn: !Ref myTargetGroup
要添加具有多个目标组的 TCP 侦听器

使用 TCP 协议来定义 AWS::ElasticLoadBalancingV2::Listener 类型的资源。

Resources: myTCPListener: Type: 'AWS::ElasticLoadBalancingV2::Listener' Properties: LoadBalancerArn: !Ref myLoadBalancer Protocol: TCP Port: 80 DefaultActions: - Type: forward ForwardConfig: TargetGroups: - TargetGroupArn: !Ref myTargetGroup1, Weight: 10 - TargetGroupArn: !Ref myTargetGroup2, Weight: 30 TargetGroupStickinessConfig: Enabled: true
要添加 TLS 侦听器

使用 TLS 协议来定义 AWS::ElasticLoadBalancingV2::Listener 类型的资源。

Resources: myTLSListener: Type: 'AWS::ElasticLoadBalancingV2::Listener' Properties: LoadBalancerArn: !Ref myLoadBalancer Protocol: TLS Port: 443 SslPolicy: "ELBSecurityPolicy-TLS13-1-2-Res-2021-06" Certificates: - CertificateArn: "certificate-arn" DefaultActions: - Type: forward TargetGroupArn: !Ref myTargetGroup
要添加 UDP 侦听器

使用 UDP 协议来定义 AWS::ElasticLoadBalancingV2::Listener 类型的资源。

Resources: myUDPListener: Type: 'AWS::ElasticLoadBalancingV2::Listener' Properties: LoadBalancerArn: !Ref myLoadBalancer Protocol: UDP Port: 53 DefaultActions: - Type: forward TargetGroupArn: !Ref myTargetGroup
要添加 QUIC 侦听器

使用 QUIC 协议来定义 AWS::ElasticLoadBalancingV2::Listener 类型的资源。

Resources: myQUICListener: Type: 'AWS::ElasticLoadBalancingV2::Listener' Properties: LoadBalancerArn: !Ref myLoadBalancer Protocol: QUIC Port: 443 DefaultActions: - Type: forward TargetGroupArn: !Ref myTargetGroup