

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 为您的 Application Load Balancer 创建 HTTP 侦听器
<a name="create-listener"></a>

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

此页面上的信息可帮助您为负载均衡器创建 HTTP 侦听器。要向您的负载均衡器添加 HTTPS 侦听器，请参阅 [为您的 Application Load Balancer 创建 HTTPS 侦听器](create-https-listener.md)。

## 先决条件
<a name="listener-prereqs"></a>
+ 要将转发操作添加到默认侦听器规则，您必须指定可用的目标组。有关更多信息，请参阅 [为您的应用程序负载均衡器创建目标组](create-target-group.md)。
+ 您可以在多个侦听器中指定同一个目标组，但这些侦听器必须属于同一个负载均衡器。要将目标组与负载均衡器结合使用，您必须确认其没有被任何其他负载均衡器的侦听器使用。

## 添加 HTTP 侦听器
<a name="add-listener"></a>

您为侦听器配置用于从客户端连接到负载均衡器的协议和端口，并为默认侦听器规则配置目标组。有关更多信息，请参阅 [侦听器配置](load-balancer-listeners.md#listener-configuration)。

要添加其他侦听器规则，请参阅[侦听器规则](listener-rules.md)。

------
#### [ Console ]

**添加 HTTP 侦听器**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格中，选择**负载均衡器**。

1. 选择负载均衡器。

1. 在**侦听器和规则**选项卡上，选择**添加侦听器**。

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

1. 对于**默认操作**，请选择以下路由操作之一并提供所需的信息：
   + **转发到目标组**：选择一个目标组。要添加其他目标组，请选择**添加目标组**，然后选择一个目标组，检查相对权重并根据需要更新权重。如果在任何目标组上启用了粘性，则必须启用组级粘性。

     如果没有能满足您需求的目标组，请选择**创建目标组**，以立即创建一个目标组。有关更多信息，请参阅 [创建目标组](create-target-group.md)。
   + **重定向到 URL**：在 **URI 部分**选项卡上分别输入每个部分，或者在**完整 URL**选项卡上输入完整的地址，从而输入 URL。对于**状态代码**，根据您的需求选择临时（HTTP 302）或永久（HTTP 301）。
   + **返回固定响应**：输入要为已删除的客户端请求返回的**响应代码**。您也可以指定**内容类型**和**响应正文**。

1. （可选）要添加标签，请展开**侦听器标签**。选择**添加新标签**，然后输入标签键和标签值。

1. 选择**添加侦听器**。

------
#### [ AWS CLI ]

**创建目标组**  
如果您没有可以用于默认操作的目标组，请立即使用[create-target-group](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-target-group.html)命令创建一个目标组。有关示例，请参阅 [创建目标组](create-target-group.md)。

**创建 HTTP 侦听器**  
使用 [create-listener](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-listener.html) 命令。以下示例会创建一个 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](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listener.html)。以下示例会创建一个 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
```

------