为网络负载均衡器创建侦听器
侦听器是用于检查连接请求的进程。您可在创建负载均衡器时定义侦听器,并可随时向负载均衡器添加侦听器。
先决条件
-
您必须为默认操作指定目标组。有关更多信息,请参阅 为网络负载均衡器创建目标组。
-
您必须指定 TLS 监听器的 SSL 证书。负载均衡器先使用证书终止连接,然后解密来自客户端的请求,最后再将请求路由到目标。有关更多信息,请参阅 网络负载均衡器的服务器证书。
-
您无法在
dualstack负载均衡器上将 IPv4 目标组与 UDP 侦听器结合使用。 -
QUIC 和 TCP_QUIC 侦听器不支持在
dualstack负载均衡器或关联安全组的负载均衡器上使用。 -
QUIC 和 TCP_QUIC 侦听器不支持在关联安全组的负载均衡器上使用。
-
在任何给定时间,网络负载均衡器上仅允许存在一个 QUIC 或 TCP_QUIC 侦听器。
-
在具有 UDP 或 TCP_UDP 侦听器的网络负载均衡器上,不允许配置 QUIC 和 TCP_QUIC 侦听器。
添加侦听器
您为侦听器配置用于从客户端连接到负载均衡器的协议和端口,并为默认侦听器规则配置目标组。有关更多信息,请参阅 侦听器配置。
- Console
-
添加侦听器
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择负载均衡器。
-
选择负载均衡器的名称以打开其详细信息页面。
-
在 Listeners(侦听器)选项卡上,选择 Add listener(添加侦听器)。
-
对于协议,请选择 TCP、UDP、TCP_UDP、TLS、QUIC 或 TCP_QUIC。保留默认端口或键入其他端口。
-
对于默认操作,选择一个要将流量转发到的目标组。
要添加其他目标组,请选择添加目标组,并根据需要更新权重。
如果您还没有能满足您需求的目标组,请选择创建目标组,以立即创建一个目标组。有关更多信息,请参阅 创建目标组。
-
[TLS 侦听器] 对于 Security policy (安全策略),建议您保留默认安全策略。
-
[TLS 侦听器] 对于默认 SSL/TLS 服务器证书,请选择默认证。书。您可从以下任一来源选择证书:
-
如果您使用 Amazon Certificate Manager 创建或导入了证书,请选择来自 ACM,然后从证书(来自 ACM)中选择该证书。
-
如果您使用 IAM 导入了证书,请选择来自 ACM,然后从证书(来自 ACM)中选择该证书。
-
如果您有证书,请选择导入证书。选择导入到 ACM 或者导入到 IAM。对于证书私有密钥,请复制并粘贴私有密钥文件(PEM 编码的文件)的内容。对于证书正文,请复制并粘贴公有密钥证书文件(PEM 编码的文件)的内容。对于证书链,请复制并粘贴证书链文件(PEM 编码的文件)的内容,除非您使用的是自签名证书并且浏览器是否隐式接受证书并不重要。
-
-
[TLS 侦听器] 对于 ALPN policy (ALPN 策略),请选择一个策略以启用 ALPN,或选择 None (无) 以禁用 ALPN。有关更多信息,请参阅 ALPN 策略。
-
(可选)要添加标签,请展开侦听器标签。选择添加新标签,然后输入标签键和标签值。
-
选择添加。
-
[TLS 侦听器] 要向可选证书列表添加证书,请参阅 将证书添加到证书列表。
- Amazon CLI
-
创建目标组
如果您没有可以用于默认操作的目标组,请立即使用 create-target-group 命令来创建一个目标组。有关示例,请参阅 创建目标组。
添加 TCP 侦听器
使用 create-listener 命令,指定 TCP 协议。
aws elbv2 create-listener \ --load-balancer-arnload-balancer-arn\ --protocol TCP \ --port80\ --default-actions Type=forward,TargetGroupArn=target-group-arn要添加具有多个目标组的 TCP 侦听器
使用 create-listener 命令,指定 TCP 协议、目标组和权重。
aws elbv2 create-listener \ --load-balancer-arnload-balancer-arn\ --protocol TCP \ --port80\ --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-arnload-balancer-arn\ --protocol TLS \ --port443\ --certificates CertificateArn=certificate-arn\ --ssl-policyELBSecurityPolicy-TLS13-1-2-Res-2021-06\ --default-actions Type=forward,TargetGroupArn=target-group-arn要添加 UDP 侦听器
使用 create-listener 命令,指定 UDP 协议。
aws elbv2 create-listener \ --load-balancer-arnload-balancer-arn\ --protocol UDP \ --port53\ --default-actions Type=forward,TargetGroupArn=target-group-arn要添加 QUIC 侦听器
使用 create-listener 命令,指定 QUIC 协议。
aws elbv2 create-listener \ --load-balancer-arnload-balancer-arn\ --protocol QUIC \ --port443\ --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