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

为您的 Application Load Balancer 创建 HTTP 侦听器

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

此页面上的信息可帮助您为负载均衡器创建 HTTP 侦听器。要向您的负载均衡器添加 HTTPS 侦听器,请参阅 为您的 Application Load Balancer 创建 HTTPS 侦听器

先决条件

  • 要将转发操作添加到默认侦听器规则,您必须指定可用的目标组。有关更多信息,请参阅 为您的应用程序负载均衡器创建目标组

  • 您可以在多个侦听器中指定同一个目标组,但这些侦听器必须属于同一个负载均衡器。要将目标组与负载均衡器结合使用,您必须确认其没有被任何其他负载均衡器的侦听器使用。

添加 HTTP 侦听器

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

要添加其他侦听器规则,请参阅侦听器规则

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

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

  3. 选择负载均衡器。

  4. 侦听器和规则选项卡上,选择添加侦听器

  5. 对于协议,请选择 HTTP。保留默认端口或输入其他端口。

  6. 对于默认操作,请选择以下路由操作之一并提供所需的信息:

    • 转发到目标组:选择一个目标组。要添加其他目标组,请选择添加目标组,然后选择一个目标组,检查相对权重并根据需要更新权重。如果在任何目标组上启用了粘性,则必须启用组级粘性。

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

    • 重定向到 URL:在 URI 部分选项卡上分别输入每个部分,或者在完整 URL选项卡上输入完整的地址,从而输入 URL。对于状态代码,根据您的需求选择临时(HTTP 302)或永久(HTTP 301)。

    • 返回固定响应:输入要为已删除的客户端请求返回的响应代码。您也可以指定内容类型响应正文

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

  8. 选择添加侦听器

Amazon CLI
创建目标组

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

创建 HTTP 侦听器

使用 create-listener 命令。以下示例会创建一个 HTTP 侦听器,其默认规则会将流量转发到指定目标组。

aws elbv2 create-listener \ --load-balancer-arn load-balancer-arn \ --protocol HTTP \ --port 80 \ --default-actions Type=forward,TargetGroupArn=target-group-arn

要创建转发操作以在两个目标组之间分配流量,请改用以下 --default-actions 选项。指定多个目标组时,您必须提供每个目标组的权重。

--default-actions '[{ "Type":"forward", "ForwardConfig":{ "TargetGroups":[ {"TargetGroupArn":"target-group-1-arn","Weight":50}, {"TargetGroupArn":"target-group-2-arn","Weight":50} ] } }]'
CloudFormation
创建 HTTP 侦听器

定义 AWS::ElasticLoadBalancingV2::Listener 类型的资源。以下示例会创建一个 HTTP 侦听器,其默认规则会将流量转发到指定目标组。

Resources: myHTTPlistener: Type: 'AWS::ElasticLoadBalancingV2::Listener' Properties: LoadBalancerArn: !Ref myLoadBalancer Protocol: HTTP Port: 80 DefaultActions: - Type: "forward" TargetGroupArn: !Ref myTargetGroup

要创建转发操作以在两个目标组之间分配流量,请使用 ForwardConfig 属性。指定多个目标组时,您必须提供每个目标组的权重。

Resources: myHTTPlistener: Type: 'AWS::ElasticLoadBalancingV2::Listener' Properties: LoadBalancerArn: !Ref myLoadBalancer Protocol: HTTP Port: 80 DefaultActions: - Type: "forward" ForwardConfig: TargetGroups: - TargetGroupArn: !Ref TargetGroup1 Weight: 50 - TargetGroupArn: !Ref TargetGroup2 Weight: 50