全部產品
Search
文件中心

Server Load Balancer:ALB佈建網域名和路徑的轉寄規則

更新時間:Aug 20, 2024

如果您需要為ALB監聽的轉寄條件佈建網域名和路徑規則,及轉寄動作配置重寫和重新導向的路徑增強規則,本文為您介紹了詳細的配置規則。

轉寄條件的網域名稱配置規則

網域名稱配置規則支援精準網域名稱、萬用字元網域名稱和Regex網域名稱。關於如何添加轉寄規則,請參見添加轉寄規則

網域名稱配置規則

說明

精準匹配及萬用字元

  • 匹配說明

    • 精準匹配:請求的網域名稱和設定的網域名稱需完全一致。

    • 萬用字元匹配:請求的網域名稱和設定的網域名稱除萬用字元外需完全一致。

  • 輸入條件

    網域名稱長度限制為3~128個字元,只允許包含大小寫英文字母、數字和.-?=~_+\^*!$&|()[]這些特殊字元,支援星號(*)和半形問號(?)作為萬用字元使用。

  • 樣本

    請求的網域名稱:www.example.com

    • 精準匹配:輸入www.example.com匹配成功。

    • 萬用字元匹配:輸入*.example.comwww.example.*匹配成功。

正則匹配

  • 匹配說明

    請求的網域名稱和設定的網域名稱根據Regex匹配。

  • 輸入條件

    網域名稱長度限制為3~128個字元,只允許包含大小寫英文字母、數字和.-?=~_-+\^*!$&|()[]這些特殊字元。

  • 樣本

    請求的網域名稱:www.example.com

    不區分大小寫:正則輸入^www.example.com$匹配成功。

轉寄條件的路徑配置規則

路徑配置規則支援精準路徑、萬用字元路徑和Regex路徑。關於如何添加轉寄規則,請參見添加轉寄規則

路徑配置規則

說明

精準匹配及萬用字元

  • 匹配說明

    • 精準匹配:請求的路徑和設定的路徑需完全一致。

    • 萬用字元匹配:請求的路徑和設定的路徑除萬用字元外需完全一致。

  • 輸入條件

    必須以 / 開頭,只允許包含大小寫英文字母、數字和$-_.+/&~@:這些特殊字元,支援星號(*)和半形問號(?)作為萬用字元使用。

  • 樣本

    請求的路徑:/example/text

    • 精準匹配:輸入/example/text匹配成功。

    • 萬用字元:輸入/example/*匹配成功。

    說明

    ALB的路徑匹配規則與Nginx不同,ALB不支援路徑最長相符原則。

    例如,Nginx的常用配置為location /abc,匹配location的方式為最長首碼匹配,ALB的最長首碼匹配需通過萬用字元實現。您可以在ALB上配置/abc/*(精確匹配及萬用字元)來達到相同的效果。

正則匹配

  • 匹配說明

    請求的路徑和設定的路徑根據Regex匹配。

  • 輸入條件

    只允許包含大小寫英文字母、數字和.-_/=?~^*$:()[]+|這些特殊字元 。

  • 樣本

    請求的路徑:/sys/aaa/HOST

    • 區分大小寫:正則匹配輸入^/sys/(.*)/HOST$時,路徑匹配成功。

    • 不區分大小寫:正則匹配輸入^/sys/(.*)/host$時,路徑匹配成功。

重寫和重新導向中路徑的增強配置規則

轉寄條件的路徑配置Regex後,轉寄動作中的重寫和重新導向的路徑支援Regex替換。關於如何添加轉寄規則,請參見添加轉寄規則

說明

轉寄條件的路徑正則配置規則,請參見轉寄條件的路徑配置規則

  • 注意事項

    • 轉寄條件中Regex中包含的半形圓括弧( )需要與轉寄動作中重寫或重新導向路徑中$變數的個數保持一致。

    • 轉寄動作中重寫或重新導向的路徑中需要包含${1}${2}${3}中的一個或多個,且這三個變數不支援使用其他字元代替。

  • 替換原理

    1. 路徑匹配:用戶端發送請求,並匹配到某一條路徑轉寄規則的Regex。

    2. 提取與替換:按照Regex的規範提取,將前三個半形圓括弧( )提取出來的內容分別儲存至${1}${2}${3}中,用於在轉寄動作的重寫或重新導向路徑中替換。

    3. 拼接:按照轉寄動作中重寫或重新導向路徑的配置,對其中的${1}${2}${3}進行值的替換,最終拼接成重寫或重新導向的實際路徑。

    編號

    步驟

    樣本

    1

    配置轉寄規則中的轉寄條件和轉寄動作。

    • 轉寄條件路徑:/sys/(.*)/(.*)/aaa

    • 轉寄動作重寫或重新導向路徑:/${1}/${2}

    2

    用戶端發送請求,並匹配路徑。

    • 用戶端發送的請求路徑:/sys/ccc/bbb/aaa

    • 匹配到的轉寄條件路徑:/sys/(.*)/(.*)/aaa

    3

    提取與替換

    按照Regex規範,轉寄條件路徑中的兩個(.*)分別提取到cccbbb,並分別保留至轉寄動作中重寫或重新導向路徑中的${1}和${2}。

    • ${1}替換為ccc

    • ${2}替換為bbb

    4

    拼接路徑

    後端伺服器接收到的路徑:/ccc/bbb

  • 配置樣本

    您可以根據注意事項和替換原理,在控制台上添加轉寄規則。轉寄規則配置樣本如下:

    樣本1:轉寄動作為重寫和轉寄至樣本1

    類別

    說明

    如果以下條件全部匹配

    路徑正則匹配

    • 匹配說明

      請求的路徑和設定的路徑根據Regex匹配。

    • 輸入條件

      只允許包含大小寫英文字母、數字和.-_/=?~^*$:()[]+|這些特殊字元 。

    • 樣本

      請求的路徑:/sys/ccc/bbb/aaa

      • 區分大小寫:正則匹配輸入/sys/(.*)/(.*)/aaa時,路徑匹配成功。

      • 不區分大小寫:正則匹配輸入/sys/(.*)/(.*)/aaa,路徑匹配成功。

    轉寄動作

    重寫

    • 網域名稱${host}

    • 路徑/${1}/${2}

    • 查詢${query}

    轉寄至

    在伺服器組列表中選擇目標伺服器組。

    樣本2:轉寄動作為重新導向樣本2

    類別

    說明

    如果以下條件全部匹配

    路徑正則匹配

    • 匹配說明

      請求的路徑和設定的路徑根據Regex匹配。

    • 輸入條件

      只允許包含大小寫英文字母、數字和.-_/=?~^*$:()[]+|這些特殊字元 。

    • 樣本

      請求的路徑:/sys/ccc/bbb/aaa

      • 區分大小寫:正則匹配輸入/sys/(.*)/(.*)/aaa時,路徑匹配成功。

      • 不區分大小寫:正則匹配輸入/sys/(.*)/(.*)/aaa,路徑匹配成功。

    轉寄動作

    重新導向

    • 協議$protocol

    • 網域名稱${host}

    • 連接埠${port}

    • 路徑/${1}/${2}

    • 查詢${query}

    • 狀態代碼301

相關文檔

如果您需要為ALB監聽配置其他監聽轉寄規則,請參見配置監聽轉寄規則