

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

# Application Load Balancer 的接聽程式規則
<a name="listener-rules"></a>

Application Load Balancer 的接聽程式規則會決定如何將請求路由到目標。當接聽程式收到請求時，它會依優先順序針對每個規則評估請求，從編號最低的規則開始。每個規則都包含要符合的條件，以及在符合規則的條件時要執行的動作。這種靈活的路由機制可讓您實作複雜的流量分佈模式，支援單一負載平衡器後方的多個應用程式或微服務，並根據應用程式的特定需求自訂請求處理。

**規則基本概念**
+ 每個規則都包含下列元件：優先順序、動作、條件和選用轉換。
+ 每個規則動作都有一個類型和執行動作所需的資訊。
+ 每個規則條件都有一個類型和評估條件所需的資訊。
+ 每個規則轉換都有要比對的規則運算式和替換字串。
+ 規則條件和規則轉換中使用的規則表達式不支援下列功能： lookaheads、 lookbehinds、backreferences、atomic group、hayive quantifiers、subroutines、recursion 和 Unicode 字元類別 （例如 `\p{L}`)。
+ 建立接聽程式時，您會定義預設規則的預設動作。預設規則不能有條件或轉換。如果不符合任何其他規則的任何條件，則會執行預設規則的動作。
+ 依優先順序評估規則，從最低值到最高值。預設規則最後評估。您無法變更預設規則的優先順序。
+ 每個規則必須包含剛好以下其中一個動作：`forward`、`redirect` 或 `fixed-response`，而且必須是最後要執行的動作。
+ 預設規則以外的每個規則都可以選擇性地包含下列其中一個條件：`host-header`、`path-pattern`、 `http-request-method`和 `source-ip`。它也可以選擇性地包含下列其中一個或兩個條件： `http-header`和 `query-string`。
+ 預設規則以外的每個規則都可以選擇性地包含一個主機標頭重寫轉換和一個 URL 重寫轉換。
+ 每個條件最多可指定三個比較字串，每個規則最多可指定五個比較字串。

**Topics**
+ [動作類型](rule-action-types.md)
+ [條件類型](rule-condition-types.md)
+ [轉換](rule-transforms.md)
+ [新增規則](add-rule.md)
+ [編輯規則](edit-rule.md)
+ [刪除規則](delete-rule.md)