HTTP 請求重寫會套用至來自用戶端的 HTTP 請求。

必要條件

確認第 7 層 HTTP 虛擬伺服器可供使用。請參閱新增第 7 層 HTTP 虛擬伺服器

對於比對類型,負載平衡器規則支援 REGEX。支援 PCRE 樣式 REGEX 模式,但對進階使用案例存在一些限制。在比對條件中使用 REGEX 時,支援具名擷取群組。請參閱負載平衡器規則中的規則運算式

程序

  1. 開啟第 7 層 HTTP 虛擬伺服器。
  2. 在 [負載平衡器規則] 區段中,於 [請求重寫階段] 旁,按一下設定 > 新增規則,以針對 HTTP 請求重寫階段設定負載平衡器規則。
  3. 從下拉式清單中選取相符條件。相符條件會用於比對透過負載平衡器傳遞的應用程式流量。可在一個負載平衡器規則中指定多個相符條件。每個相符條件均定義應用程式流量的準則。
    支援的比對條件 說明
    HTTP 要求方法 比對 HTTP 要求方法。

    http_request.method - 要比對的值

    HTTP 要求 URI 比對不含查詢引數的 HTTP 要求 URI。

    http_request.uri - 要比對的值

    HTTP 要求 URI 引數

    用於比對 URI 引數 (也稱為 HTTP 請求訊息的查詢字串),例如,在 URI http://exaple.com?foo=1&bar=2 中,「foo=1&bar=2」是包含 URI 引數的查詢字串。在 URI 配置中,查詢字串是由第一個問號 (「?」) 字元指出,且結尾為井字號 (「#」) 字元或 URI 結尾。

    http_request.uri_arguments - 要比對的值

    HTTP 要求版本 用於比對 HTTP 請求訊息的 HTTP 通訊協定版本

    http_request.version - 要比對的值

    HTTP 要求標頭 用於依 HTTP 標頭欄位比對 HTTP 請求訊息。HTTP 標頭欄位是 HTTP 請求和回應訊息的標頭區段元件。它們定義 HTTP 交易的作業參數。

    http_request.header_name - 要比對的標頭名稱

    http_request.header_value - 要比對的值

    HTTP 要求 Cookie 用於依屬於 HTTP 標頭特定類型的 Cookie 比對 HTTP 請求訊息。match_type 和 case_sensitive 會定義比較 cookie 值的方式。

    http_request.cookie_value - 要比對的值

    HTTP 要求本文 比對 HTTP 要求的內文內容。

    http_request.body_value - 要比對的值

    用戶端 SSL 比對用戶端 SSL 設定檔識別碼。

    ssl_profile_id - 要比對的值

    TCP 標頭連接埠 比對 TCP 來源或目的地連接埠。

    tcp_header.source_port - 要比對的來源連接埠

    tcp_header.destination_port - 要比對的目的地連接埠
    IP 標頭來源 比對 HTTP 訊息中的 IP 標頭欄位。來源類型必須是單一 IP 位址、IP 位址範圍或群組。請參閱新增群組
    • 如果選取了 [IP 標頭來源] 並具有 [IP 位址] 來源類型,則 HTTP 訊息的來源 IP 位址應符合群組中設定的 IP 位址。支援 IPv4 和 IPv6 位址
    • 如果選取了 [IP 標頭來源] 並具有 [群組] 來源類型,請從下拉式清單中選取群組。

    ip_header.source_address - 要比對的來源位址

    ip_header.destination_address - 要比對的目的地位址
    變數 建立一個變數並為該變數指派值。
    區分大小寫 設定區分大小寫的旗標以用於 HTTP 標頭值比較。如果為 true,則比較 HTTP 本文值時大小寫很重要。
  4. 從下拉式功能表中,選取相符類型:開頭為、結尾為、等於、包含、或符合 Regex。相符類型用於將條件與指定動作比對。
    相符類型 說明
    開頭為 如果相符條件的開頭為指定值,則條件會相符。
    結尾為 如果相符條件的結尾為指定值,則條件會相符。
    等於 如果相符條件與指定值相同,則條件會相符。
    包含 如果相符條件包含指定的值,則條件會相符。
    符合 Regex 如果相符條件符合指定的值,則條件會相符。
  5. 指定 URI。
  6. 從下拉式功能表中,選取符合策略
    符合策略 說明
    任何 指出將符合此規則的主機或路徑視為相符。
    全部

    指出主機和路徑均必須符合,才將此規則視為相符。

  7. 從下拉式功能表中選取動作:
    動作 說明
    HTTP 要求 URI 重寫

    此動作用於在符合的 HTTP 請求訊息中重寫 URI。指定要在此情況下將相符的 HTTP 請求訊息的 URI 和 URI 引數重寫至新值的 URI 和 URI 引數。HTTP 訊息的完整 URI 配置有如下語法:Scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment 此動作的 URI 欄位用於重寫上述配置中的 /path 部分。[URI 引數] 欄位用於重寫查詢部分。擷取的變數和內建變數可用於 URI 和 URI 引數欄位。

    1. 輸入 HTTP 請求的 URI
    2. 輸入 URI 的查詢字串,通常包含索引鍵值配對,例如:foo1=bar1&foo2=bar2。
    HTTP 要求標頭重寫

    此動作用於將符合 HTTP 請求訊息的標頭欄位重寫為指定的新值。

    1. 輸入標頭文字方塊 HTTP 請求訊息的名稱。
    2. 輸入標頭值。
    HTTP 要求標頭刪除

    此動作用於在 HTTP_REQUEST_REWRITE 階段刪除 HTTP 請求訊息的標頭欄位。一個動作可用於刪除具有相同標頭名稱的所有標頭。若要刪除具有不同標頭名稱的標頭,必須定義多個動作。

    • 輸入 HTTP 請求訊息標頭欄位的名稱。
    變數指派 建立變數並為其指定名稱和值。
  8. 切換區分大小寫按鈕,以設定用於 HTTP 標頭值比較的區分大小寫旗標。
  9. 切換否定按鈕以進行啟用。
  10. 按一下儲存套用