すべてのプロダクト
Search
ドキュメントセンター

:ルールエンジン

最終更新日:Mar 01, 2025

ルールエンジンを使用すると、同じ構文とロジックに従って、キャッシュルール、リダイレクトルール、圧縮ルール、オリジンルール、Web Application Firewall (WAF) 保護ルールなど、さまざまなルールを作成およびデプロイできます。

概要

Edge Security Acceleration (ESA) のルールエンジンを使用すると、GUI でルールを作成できます。 ESA は、ルールで定義されたリクエストパラメーターに基づいて、受信リクエストに特定の構成を適用するかどうかを確認します。これにより、より柔軟で正確なコンテンツ配信制御が可能になります。

ルールの優先順位

  • 特定の側面 ( ブラウザキャッシュ TTL など) に関するルールは、その側面のグローバル構成よりも優先されます。

  • 特定の側面 ( キャッシュなど) にルールのリストがある場合、ルールは上から下に順番に適用されます。ルールリスト内の特定のルールの優先順位を変更するには、ルールリスト内の順序を変更します。

使用上の注意

  • 単一のルール条件のサイズは 4 KB を超えることはできません。セキュリティ構成を除く、Web サイトのすべての構成情報の合計サイズは、512 KB を超えることはできません。

  • ルール条件は、最大深度が 2 レベルのネスト構造をサポートします。各レベルは、個別の論理演算設定をサポートします。

  • 1 つのルール条件には、最大 20 の一致フィールドを含めることができます。

適用対象 パラメーターの説明

ルールを作成するときは、[適用対象] パラメーターで次のオプションを使用できます。

  • [すべてのリクエスト]: 作成されたルールは、Web サイトのすべてのトラフィックに適用されます。

  • [フィルターされたリクエスト]: 作成されたルールは、カスタム式に一致するトラフィックにのみ適用されます。このオプションを選択して、リクエストを正確にフィルタリングできます。

ルール構文

ルール条件は、論理演算子で構成されます。

  • 式: 特定の特性を持つリクエストをフィルタリングするために使用されます。

  • 論理演算子: 複数の式を組み合わせるために使用されます。

複数の式を指定して組み合わせることで、ビジネス要件に基づいてリクエストをフィルタリングできます。

論理演算子

論理演算子は、ルール条件内の式を接続して論理演算を実行します。次の論理演算子がサポートされています。

  • and: ルール条件内のすべての式が true の場合にのみ、ルール条件が一致します。

  • or: ルール条件内の式のいずれかが true の場合、ルール条件が一致します。

単純な式には、次の表で説明されているパラメーターが含まれています。

パラメーター

対応する構文パラメーター

説明

必須

一致フィールド

Field

一致フィールド。

はい

一致値

Value

一致値。

はい

比較演算子

Comparison_operator

比較演算子。

はい

式の構文

  • 単純な式

    • 構文: <field><comparison_operator><value>

    • 例: http.request.uri.path matches"/image\.(jpg|png)$"

  • 複合式

    • 定義: 論理演算子で接続された複数の式

    • 構文: <expreesion><logical_operator><expression>

    • 例: http.host eq "www.example.com" and http.request.uri.path eq "/content"

一致フィールド

説明
  • ホスト名 ( http.host ) 一致フィールドは SSL/TLS 暗号化ルールに適用され、等しい演算子と等しくない演算子のみをサポートします。

  • 一部のインターネットサービスプロバイダー (ISP) は、特定の地域のクライアントにプライベート IP アドレスを割り当てる場合があります。この場合、受信したリクエストはプライベート IP アドレスから送信されるため、POP はクライアントの国/地域、IP ソースアドレス、都道府県、または ISP を正確に判断できません。詳細については、「プライベート CIDR ブロックを識別する方法」をご参照ください。

一致フィールド

説明

式内の変数名

サポートされている比較演算子

一致値

リクエストメソッド

リクエストで使用されるメソッド。

http.request.method

  • 等しい

  • 等しくない

  • 含まれる

  • 含まれない

有効な値:

  • GET

  • POST

  • PURGE

  • PUT

  • HEAD

  • OPTIONS

  • DELETE

  • PATCH

HTTP バージョン

リクエストで使用される HTTP バージョン。

http.request.version

有効な値:

  • HTTP/1.0

  • HTTP/1.1

  • HTTP/2.0

  • HTTP/3.0

国/地域

クライアント IP アドレスが属する国または地域。

ip.geoip.country

  • ドロップダウンリストから値を選択できます。

  • 大文字と小文字は区別されません。

  • 一致値に空の文字列は許可されません。

ファイル名

クライアントによってリクエストされたファイルの名前。

http.request.uri.path.file_name

  • 値には、実際のファイル名のサフィックスを含めることはできません。例:

    • /a/b: 値として b を指定します。

    • /a/b/: 値として空の文字列を指定します。

    • /foo.tar.bz2: 値として foo.tar を指定します。

    • 128_128.jpg: 値として 128_128 を指定します。

  • 大文字と小文字は区別されます。

  • 一致値に空の文字列は許可されません。

ファイル拡張子

クライアントによってリクエストされたファイル名のサフィックス。

http.request.uri.path.extension

  • 値は、ファイル名の最後のピリオド (.) から始まる文字列です。値を指定するときは、値にピリオド (.) を含めないでください。たとえば、ファイル名が foo.tar.bz2 の場合は、値として bz2 を指定します。

  • 大文字と小文字は区別されます。

  • 一致値に空の文字列は許可されません。

IP ソースアドレス

クライアントの IP アドレス。

ip.src

  • IPv4 アドレスがサポートされています。例: 192.168.X.X

  • IPv6 アドレスがサポートされています。例: 240e:95c:3004:2:3:0:0:XXX

  • CIDR ブロックがサポートされています。例: 192.168.XXX.XXX/31

  • 大文字と小文字は区別されません。

  • 一致値に空の文字列は許可されません。

SSL/HTTPS

リクエストで使用されるプロトコルのタイプ。

http.request.scheme

  • 等しい

  • 等しくない

有効な値:

  • http

  • https

ホスト名

リクエストに含まれるホスト名。

一致順序: URL と HOST ヘッダーの両方にホスト名が含まれている場合、リクエスト URL のホスト名が使用されます。

http.host

  • 等しい

  • 等しくない

  • 含む

  • 含まない

  • で始まる

  • で終わる

  • で始まらない

  • で終わらない

  • 正規表現に一致

  • 正規表現に一致しない

  • 含まれる

  • 含まれない

  • 例: ["www1.alibaba.com","www2.alibaba.com"]。

  • 大文字と小文字は区別されません。

  • 一致値に空の文字列は許可されません。

URI

リクエストの URL 内のパス。値にはリクエストパラメーターが含まれます。

http.request.uri

  • 例: /articles/index?section=330688&expand=comments。

  • 大文字と小文字は区別されます。

  • 一致値に空の文字列は許可されません。

完全な URI

リクエストの完全な Uniform Resource Identifier (URI)。

http.request.full_uri

  • 例: htt­ps://www.example.org/articles/index?section=330688&expand=comments。

  • 大文字と小文字は区別されます。

  • 一致値に空の文字列は許可されません。

URI パス

リクエストの URL 内のパス。値にはリクエストパラメーターは含まれません。

http.request.uri.path

  • 例: /articles/index。

  • 大文字と小文字は区別されます。

  • 一致値に空の文字列は許可されません。

URI クエリ文字列

リクエストの URL 内のすべてのリクエストパラメーター。

http.request.uri.query

  • 例: section=330688&expand=comments。

  • 大文字と小文字は区別されます。

  • 一致値に空の文字列は許可されません。

URI クエリ文字列パラメーター

リクエストの URL 内の指定されたクエリパラメーター。

http.request.uri.args["session"]

  • パラメーター名とパラメーター値を指定して、リクエストを照合できます。たとえば、パラメーター名 session とパラメーター値 330688 を入力できます。

  • 大文字と小文字は区別されます。

  • 一致値に空の文字列が許可されます。

    説明

    次の演算子のいずれかを選択した場合にのみ、null 値を指定できます。

    • 等しい

    • 等しくない

    • 含む

    • 正規表現に一致

Cookie

リクエストに含まれる Cookie。

http.cookie

  • 等しい

  • 等しくない

  • 含む

  • 含まない

  • 正規表現に一致

  • 正規表現に一致しない

  • 例: session=330688;background=light。

  • 大文字と小文字は区別されます。

  • 一致値に空の文字列が許可されます。

ユーザーエージェント

リクエストに含まれるクライアント情報。

http.user_agent

  • 例: curl/7.29.0。

  • 大文字と小文字は区別されます。

  • 一致値に空の文字列が許可されます。

リファラー

リソースがリクエストされた元の Web ページの URL。

http.referer

  • 例: http://refer.com.cn。

  • 大文字と小文字は区別されません。

  • 一致値に空の文字列が許可されます。

X-Forwarded-For

リクエストの X-Forwarded-For ヘッダーの値。

http.x_forwarded_for

  • 例: 192.168.1.X および 192.168.2.X

  • 大文字と小文字は区別されます。

  • 一致値に空の文字列が許可されます。

ヘッダー

リクエストの指定されたヘッダー。

http.request.headers["session"]

  • ヘッダー名とヘッダー値を指定して、リクエストを照合できます。たとえば、ヘッダー名 session とヘッダー値 330688 を入力できます。

  • 大文字と小文字は区別されます。

  • 一致値に空の文字列が許可されます。

Cookie の値

リクエストの指定された Cookie パラメーター。

http.request.cookies["session"]

  • Cookie パラメーターと Cookie 値を指定して、リクエストを照合できます。たとえば、Cookie パラメーター名 session とパラメーター値 330688 を入力できます。

  • 大文字と小文字は区別されます。

  • 一致値に空の文字列が許可されます。

ISP

クライアント IP アドレスが属する ISP。

ip.src.isp

  • 等しい

  • 等しくない

  • 含む

  • 含まない

有効な値:

  • China Telecom

  • China Mobile

  • China Unicom

IP プロトコルバージョン

クライアント IP アドレスのプロトコルバージョン。

ip.src.version

  • 等しい

  • 等しくない

有効な値:

  • IPv4

  • IPv6

都道府県

国の第 1 レベルの行政区画。

ip.src.subdivision_1_iso_code

  • 等しい

  • 等しくない

  • 含む

  • 含まない

  • 例: CN-ZJ (Zhengjiang, China)

  • 大文字と小文字は区別されます。

ロードバランサーリージョン

ロードバランサーが存在するリージョン。

ip.src.region_code

  • 等しい

  • 等しくない

  • 含む

  • 含まない

  • 例: EAS (East Asia)

  • 大文字と小文字は区別されます。

リクエストタイムスタンプ

リクエストが POP に到着した時刻を示す UNIX タイムスタンプ。

http.request.timestamp.sec

  • 等しい

  • 等しくない

  • より大きい

  • より小さい

  • 以上

  • 以下

  • 例: 1735019278 (2024 年 12 月 24 日 13:47:58)

比較演算子

演算子名

演算子

否定可能

値のタイプ

備考

等しい

eq

いいえ

文字列

/

等しくない

ne

いいえ

文字列

/

含む

contains

はい

文字列

演算子は、指定された文字列が含まれているかどうかを確認します。

正規表現に一致

matches

はい

文字列

演算子は、正規表現による一致を確認します。

Business プランと Enterprise プランのみが演算子をサポートします。

含まれる

in

はい

配列

指定された要素のいずれかが一致する場合、式は true です。

  • 演算子は、値にワイルドカード文字をサポートしていません。

  • 演算子は、値の配列で最大 32 個の要素をサポートします。

で始まる

starts_with

はい

文字列

/

で終わる

ends_with

はい

文字列

/

長さ未満

len-lt

いいえ

整数

文字列の長さが指定された長さ条件より短い場合、一致が見つかります。

長さと同じ

len-eq

いいえ

整数

文字列の長さが指定された長さ条件と同じ場合、一致が見つかります。

長さより大きい

len-gt

いいえ

整数

文字列の長さが指定された長さ条件より長い場合、一致が見つかります。

リストに含まれる

in_list

はい

整数

この演算子は、アカウントレベルで作成するグローバルリストで使用されます。

存在する

exists

はい

ブール値

演算子は、キーと値のペアに指定されたキーが存在するかどうかを確認します。たとえば、ヘッダー、Cookie、およびクエリ文字列に基づくルールでこの演算子を使用できます。

より大きい

gt

いいえ

整数

演算子は、値が整数であるルールに適用されます。

より小さい

lt

いいえ

整数

演算子は、値が整数であるルールに適用されます。

以上

ge

いいえ

整数

演算子は、値が整数であるルールに適用されます。

以下

le

いいえ

整数

演算子は、値が整数であるルールに適用されます。

ワイルドカード文字

ワイルドカード文字

説明

?

1 つの文字に一致します。

*

任意の数の文字に一致します。

式の作成

説明

デフォルトでは、式ビルダーが表示され、式を作成できます。

式ビルダーを使用する

式ビルダーを使用すると、インタラクティブな方法で式をすばやく作成できます。ただし、複雑な式を作成する場合は、式エディターに切り替える必要がある場合があります。

たとえば、リクエストメソッドに基づいて式を作成する場合は、ドロップダウンリストから式のコンポーネントを選択して、式ビルダーに式を自動的に作成させます。

image

式エディターを使用する

式エディターを使用すると、より複雑な式をより柔軟な方法で作成できます。

  1. [式の編集] をクリックします。

    image

  2. エディターで式を入力します。

    image