Application Load Balancer 的接聽程式規則 - Elastic Load Balancing

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

Application Load Balancer 的接聽程式規則

您為接聽程式定義的規則將決定負載平衡器將請求路由到一個或多個目標群組中之目標的方法。

每個規則由優先順序、一或多個動作及一或多個條件組成。如需詳細資訊,請參閱 接聽程式規則

需求

  • 規則只能附加到安全偵聽器。

  • 每個規則必須包含剛好以下其中一個動作:forwardredirectfixed-response,而且必須是最後要執行的動作。

  • 每個規則可以包含以下其中一個條件或都不包含:host-headerhttp-request-methodpath-patternsource-ip,以及以下其中一個條件或都不包含:http-headerquery-string

  • 每個條件最多可指定三個比較字串,每個規則最多可指定五個比較字串。

  • forward 動作會將請求路由至它的目標群組。新增 forward 動作之前,請建立目標群組並將目標新增至群組。如需詳細資訊,請參閱 建立目標群組

新增規則

建立接聽程式時您會定義預設規則,並且可以隨機定義額外的非預設規則。

使用主控台新增規則
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格上選擇 Load Balancers (負載平衡器)

  3. 選取負載平衡器以檢視其詳細資訊。

  4. 接聽程式和規則索引標籤上,執行下列其中一個動作:

    1. 選取通訊協定:連接埠資料欄中的文字,即可開啟接聽程式的詳細資訊頁面。

      規則索引標籤上選擇新增規則

    2. 選取您要對其新增規則的接聽程式。

      選擇管理規則,然後選擇新增規則

  5. 您可以在名稱和標籤底下指定規則的名稱,但這並非必填的資訊。

    若要新增其他標籤,請選取新增其他標籤文字。

  6. 選擇下一步

  7. 選擇新增條件

  8. 新增一個或多個以下條件:

    • 主機標頭 – 定義主機標頭。例如:*.example.com。若要儲存條件,請選擇確認

      最多 128 個字元。不區分大小寫。允許的字元有 a-z、A-Z、0-9,以及下列特殊字元:-_.; 和萬用字元 (* 和 ?)。

    • 路徑 – 定義路徑。例如:/item/* 。若要儲存條件,請選擇確認

      最多 128 個字元。區分大小寫。允許的字元有 a-z、A-Z、0-9,以及下列特殊字元:_-.$/~"'@:+; &; 和萬用字元 (* 和 ?)。

    • HTTP 請求方法 – 定義 HTTP 請求方法。若要儲存條件,請選擇確認

      最多 40 個字元。區分大小寫。允許的字元有 A-Z 以及下列特殊字元:-_。不支援萬用字元。

    • 來源 IP – 以 CIDR 格式定義來源 IP 地址。若要儲存條件,請選擇確認

      IPv4 和 IPv6 CIDR 都是允許的。不支援萬用字元。

    • HTTP 標頭 – 輸入標頭的名稱,並新增一個或多個比較字串。若要儲存條件,請選擇確認

      • HTTP 標頭名稱 – 規則會評估內含此標頭的請求,以確認相符值。

        最多 40 個字元。不區分大小寫。允許的字元有 a-z、A-Z、0-9 以及下列特殊字元:*?-!#$%&'+.^_`|~。不支援萬用字元。

      • HTTP 標頭值 – 輸入要與 HTTP 標頭值比較的字串。

        最多 128 個字元。不區分大小寫。允許的字元有 a-z、A-Z、0-9、空格,以及下列特殊字元:!"#$%&'()+,./:;⩽=>@[]^_`{|}~-; 和萬用字元 (* 和 ?)。

    • 查詢字串 – 根據查詢字串中的鍵值組或值來路由傳送請求。若要儲存條件,請選擇確認

      最多 128 個字元。不區分大小寫。允許的字元有 a-z、A-Z、0-9,以及下列特殊字元: _-.$/~"'@:+&()!,;=; 和萬用字元 (* 和 ?)。

  9. 選擇下一步

  10. 為規則定義下列動作之一:

    • 轉送至目標群組 – 選擇一個或多個要將流量轉送至其中的目標群組。若要新增目標群組,請選擇新增目標群組。如果使用多個目標群組,請為每個目標群組選取權重,並檢閱相關的百分比。如果您已在一個或多個目標群組上啟用粘性,則必須在規則上啟用群組層級粘性。

    • 重新導向至 URL – 指定將用戶端請求重新導向所至的 URL。這可以透過在 URI 部分索引標籤上單獨輸入每個部分,或在完整 URL 索引標籤上輸入完整地址來完成。若是狀態碼,您可以根據需求,將重新導向設定為暫時 (HTTP 302) 或永久 (HTTP 301)。

    • 傳回固定回應 – 指定回應代碼,此代碼將傳回至遭捨棄的用戶端請求。此外,您可以指定內容類型回應內文,但這並非必填的資訊。

  11. 選擇下一步

  12. 規則區段中,指定規則的優先順序,可選順序範圍為 1-50000。建議您在接聽程式規則優先順序編號之間保留間隔。檢視接聽程式規則區段,以取得現有規則以及目前正在建立之規則的即時摘要。

  13. 選擇下一步

  14. 檢閱目前為新規則設定的所有詳細資料和設定。如果對選取項目感到滿意,請選擇建立

使用 AWS CLI 新增規則

使用 create-rule 命令來建立規則。使用 describe-rules 命令來檢視規則的相關資訊。

編輯規則

您可以隨時編輯規則的動作和條件。規則更新不會立即生效,因此在您更新規則後,可以使用先前的規則組態路由傳送請求一段時間。任何進行中的請求都已完成。

使用主控台編輯規則
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格上選擇 Load Balancers (負載平衡器)

  3. 選取負載平衡器。

  4. 接聽程式和規則索引標籤上,執行下列其中一個動作:

    1. 選取通訊協定:連接埠資料欄中的文字,即可開啟接聽程式的詳細資訊頁面。

      1. 規則索引標籤的接聽程式規則區段中,在名稱標籤資料欄中選取要編輯之規則的文字。

        選擇動作,然後編輯規則

      2. 規則索引標籤的接聽程式規則區段中,選取要編輯的規則。

        選擇動作,然後編輯規則

    2. 選取您要對其編輯規則的接聽程式。

      選擇管理規則,然後選擇編輯規則

  5. 視需要修改條件和動作。您可以編輯條件或動作、新增條件或刪除條件或動作。

  6. 選擇 Save changes (儲存變更)

使用 AWS CLI 編輯規則

使用 modify-rule 命令。

更新規則優先順序

依優先順序評估規則,從最低值到最高值。預設規則最後評估。您可以隨時變更非預設規則的優先順序。您無法變更預設規則的優先順序。

使用主控台更新規則優先順序
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格上選擇 Load Balancers (負載平衡器)

  3. 選取負載平衡器。

  4. 接聽程式和規則索引標籤上,執行下列其中一個動作:

    1. 選取通訊協定:連接埠規則資料欄中的文字,以開啟接聽程式的詳細資訊頁面。

      1. 選擇動作,然後選擇重新排定規則的優先順序

      2. 規則索引標籤的接聽程式規則區段中,選擇動作,然後選擇重新排定規則的優先順序

    2. 選取接聽程式。

      1. 選擇管理規則,然後選擇重新排定規則的優先順序

  5. 接聽程式規則區段中,優先順序資料欄會顯示目前的規則優先順序。選取規則優先順序值以顯示編輯欄位,您可在其中調整值。

  6. 如果滿意變更結果,請選擇儲存變更

使用 AWS CLI 更新規則優先順序

使用 set-rule-priorities 命令。

刪除規則

您可以隨時刪除接聽程式的非預設規則。您無法刪除接聽程式的預設規則。刪除接聽程式時,其所有規則將被刪除。

使用主控台刪除規則
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格上選擇 Load Balancers (負載平衡器)

  3. 選取負載平衡器。

  4. 接聽程式和規則索引標籤上,執行下列其中一個動作:

    1. 選取通訊協定:連接埠規則資料欄中的文字,以開啟接聽程式的詳細資訊頁面。

      1. 選取您要刪除的規則。

      2. 依序選擇動作刪除規則

      3. 在文字欄位中輸入 confirm,然後選擇刪除

    2. 選取名稱標籤資料欄中的文字,以開啟規則的詳細資訊頁面。

      1. 依序選擇動作刪除規則

      2. 在文字欄位中輸入 confirm,然後選擇刪除

使用 AWS CLI 刪除規則

使用 delete-rule 命令。