

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 為 Application Load Balancer 建立 HTTP 接聽程式
<a name="create-listener"></a>

接聽程式會檢查連線請求。當您在立負載平衡器時便定義接聽程式，然後可隨時新增接聽程式到您的負載平衡器。

此頁面的資訊協助您為負載平衡器建立 HTTP 接聽程式。若要將 HTTPS 接聽程式新增至您的負載平衡器，請參閱[為 Application Load Balancer 建立 HTTPS 接聽程式](create-https-listener.md)。

## 先決條件
<a name="listener-prereqs"></a>
+ 若要新增轉送動作到預設的接聽程式規則，您必須指定可用的目標群組。如需詳細資訊，請參閱[為您的 Application Load Balancer 建立目標群組](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. 在導覽窗格上選擇 **Load Balancers (負載平衡器)**。

1. 選取負載平衡器。

1. 在**接聽程式和規則**索引標籤上，選擇**新增接聽程式**。

1. 針對**通訊協定**，選擇 **HTTP**。保留預設連接埠或輸入不同的連接埠。

1. 針對**預設動作**，選取下列其中一個路由動作，並提供必要資訊：
   + **轉送至目標群組** – 選擇目標群組。若要新增另一個目標群組，請選擇**新增目標群組**、選擇目標群組、檢閱相對權重，並視需要更新權重。如果您在任何目標群組上啟用粘性，則必須啟用群組層級粘性。

     如果您沒有符合您需求的目標群組，請選擇**建立目標群組以立即建立目標群組**。如需詳細資訊，請參閱[建立目標群組](create-target-group.md)。
   + **重新導向至 URL** – 在 **URI 部分**索引標籤上分別輸入每個部分，或在完整 URL 索引標籤上輸入完整地址，以輸入 **URL**。針對**狀態碼**，根據您的需求選取暫時 (HTTP 302) 或永久 (HTTP 301)。
   + **傳回固定回應** – 輸入**回應碼**以針對捨棄的用戶端請求傳回。或者，您可以指定**內容類型**和**回應內文**。

1. （選用） 若要新增標籤，請展開**接聽程式標籤**。選擇**新增標籤**，然後輸入標籤索引鍵和標籤值。

1. 選擇 **Add listener (新增接聽程式)**。

------
#### [ 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
```

------