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

CDN:ルールエンジン

最終更新日:Jun 06, 2025

ルールエンジンは、ルールの構成方法を簡素化するグラフィカルユーザーインターフェイスを提供します。 リクエストに構成が適用されるかどうかを判断するために、リクエストに含まれるパラメータに基づいてユーザーリクエストを識別するルールを構成できます。 これにより、Alibaba Cloud CDN で設定する構成とポリシーを管理するための、より柔軟で正確な方法が提供されます。

背景情報

CDN コンソールは、ほとんどのシナリオに適したキャッシュの有効期限ルールやパラメータの書き換えなど、基本的な機能を提供しますが、すべてのユーザーの要件を満たしているわけではありません。 たとえば、CDN は /example などの特定のパスを含むリクエストを特定のオリジンサーバーアドレスにリダイレクトすることをサポートしていません。 柔軟なカスタム構成を実装するには、基本機能とルールエンジンを一緒に使用できます。 より複雑な構成には、EdgeScript を使用することもできます。 詳細については、「EdgeScript の概要」をご参照ください。

機能

基本機能

基本機能 + ルールエンジン

EdgeScript

構成

一般的な構成

柔軟な構成

非常に柔軟な構成

シナリオ

一般的な要件

高度なカスタム要件

完全にカスタマイズされた要件

使いやすさ (必要な技術知識)

構成の柔軟性

使用上の注意

  • ドメイン名ごとに最大 50 個のルールを作成できます。

  • 各ルール内に最大 20 個のサブルールを作成できます。

  • コンソールを使用するか、API 操作を呼び出してルールを作成する場合、正規表現の一致や不一致を含む、正規表現関連の演算子は使用できません。 ただし、演算子を含む既存のルールを表示することはできます。 正規表現関連の演算子を使用するには、チケットを送信するか、Edge Security Acceleration (ESA) を選択してください。

  • コンソールを使用するか、API 操作を呼び出してルールを作成する場合、ドメイン名のすべての機能でルールを最大 5 回まで参照できます。

  • ルールは最大 3 レベルのネストをサポートします。 各レベル内で完全な論理ステートメントを構成できます。

ルールの構文

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

ロジック

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

  • and: 論理積演算子。 ルール条件内のすべての式が真の場合にのみ、ルール条件が一致します。

  • or: 論理和演算子。 ルール条件内の式のいずれかが真の場合、ルール条件が一致します。

条件式のパラメータ

最も単純な式には、次の表で説明されているコンポーネントが含まれています。

名前

関数における対応するパラメータ条件ヒント:関数

説明

必須

条件一致

match

条件一致式。

はい

論理判断

logic

条件一致式の論理判断パラメータ。 有効な値: and/or。

はい

条件判断の基準

criteria

条件一致式の判断基準。

はい

一致タイプ

MatchType

一致させる情報のタイプ。 式は、ユーザーリクエストに含まれる特定のタイプの情報と一致させようとします。

はい

一致オブジェクト

MatchObject

一致タイプの細分化。 たとえば、クライアント IP アドレスは、接続ポイント (POP) への接続に使用する IP アドレスと X-Forwarded-For (XFF) IP アドレスに細分化できます。

いいえ

一致演算子

MatchOperator

一致の演算子。

はい

一致値

MatchValue

ユーザーリクエストに含まれる情報と照合されるプリセット値。

はい

条件判断値の否定

negate

条件式の結果を否定するかどうかを指定します。 有効な値: true および false。

はい

大文字と小文字の区別

caseSensitive

一致値の文字で大文字と小文字を区別するかどうかを指定します。

いいえ

ルール名

name

ルールの名前。

はい

有効ステータス

status

ルールの有効ステータス。

はい

条件式の構成

一致タイプ

関数における対応するパラメータ条件 関数

説明

一致オブジェクト

一致演算子

一致値

大文字と小文字の区別

NGINX または Tengine における対応する変数

プロトコル

scheme

リクエストが送信されるプロトコル (HTTP や HTTPS など)。

該当なし

  • 以下に等しい

  • 以下に等しくない

  • http

  • https

該当なし

$scheme

リクエストメソッド

method

リクエストメソッド (GET や PUT など)。

該当なし

  • 以下に等しい

  • 以下に等しくない

  • get

  • put

  • post

  • delete

  • head

該当なし

$request_method

URI

uri

リクエスト URL 内のパス。リクエストパラメータは除きます。 例: /favicon.ico

該当なし

  • いずれかを含む

  • いずれかを含まない

疑問符 (?) とアスタリスク (*) ワイルドカードがサポートされています。 たとえば、/*/my_path/* は有効な式です。 複数の値を指定できます。

  • 大文字と小文字を区別する

  • 大文字と小文字を区別しない

$raw_uri または $uri

ファイル名

basename

クライアントがリクエストしたファイルの名前。 例: name1。

該当なし

  • いずれかを含む

  • いずれかを含まない

疑問符 (?) とアスタリスク (*) ワイルドカードがサポートされています。 複数の値を指定できます。

  • 大文字と小文字を区別する

  • 大文字と小文字を区別しない

-

ファイル名拡張子

extension

クライアントがリクエストしたファイルの接尾辞。 最後のピリオド (.) から始まります (例: .mp4)。

該当なし

  • いずれかを含む

  • いずれかを含まない

疑問符 (?) とアスタリスク (*) ワイルドカードがサポートされています。 複数の値を指定できます。

  • 大文字と小文字を区別する

  • 大文字と小文字を区別しない

-

ホスト名

hostname

リクエストに含まれるホスト名。 一致の優先順位: リクエスト URL 内のホスト > リクエストの HOST ヘッダー内のホスト。

該当なし

  • いずれかを含む

  • いずれかを含まない

リクエストのホスト。 複数の値を指定できます。

  • 大文字と小文字を区別する

  • 大文字と小文字を区別しない

$host または $http_host

クライアント IP アドレス

clientip

クライアントの IP アドレス。 1.1.X.X などの IPv4 アドレス、240e:95c:3004:2:3:0:0:XXX などの IPv6 アドレス、20.209.XXX.XXX/31 などの CIDR ブロックがサポートされています。

  • POP への接続に使用する IP アドレス

  • XFF IP

説明

POP への接続に使用する IP アドレスと XFF IP アドレスについては、「IP アドレス検証モード」をご参照ください。

  • いずれかを含む

  • いずれかを含まない

240e:XXX:3004:2:3:0:0:3f7 などの IPv6 アドレスと 120.209.XXX.XXX/31 などの CIDR ブロックがサポートされています。 複数の値を指定できます。

該当なし

$remote_addr

クライアント IP バージョン

clientipVer

IPv4 または IPv6

  • POP への接続に使用する IP アドレス

  • XFF IP

説明

POP への接続に使用する IP アドレスと XFF IP アドレスについては、「IP アドレス検証モード」をご参照ください。

  • 以下に等しい

  • 以下に等しくない

  • v4

  • v6

該当なし

-

インターネットサービスプロバイダー (ISP)

geolocation

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

  • POP への接続に使用する IP アドレス

  • XFF IP

説明

POP への接続に使用する IP アドレスと XFF IP アドレスについては、「IP アドレス検証モード」をご参照ください。

  • いずれかを含む

  • いずれかを含まない

ドロップダウンリストから値を選択するか、文字を入力してオプションをフィルタリングできます。 ID または名前によるあいまい一致がサポートされています。 複数の値を指定できます。

該当なし

$ip_isp_id

IP の場所

geolocation

クライアント IP アドレスの地理的な場所。

  • POP への接続に使用する IP アドレス

  • XFF IP

説明

POP への接続に使用する IP アドレスと XFF IP アドレスについては、「IP アドレス検証モード」をご参照ください。

  • いずれかを含む

  • いずれかを含まない

ドロップダウンリストから値を選択するか、文字を入力してオプションをフィルタリングできます。 ID または名前によるあいまい一致がサポートされています。 複数の値を指定できます。

該当なし

$ip_country_id

リクエストパラメータ

querystring

リクエスト URL に含まれるパラメータ。

パラメータ名を入力します。

  • 存在する

  • 存在しない

  • いずれかを含む

  • いずれかを含まない

  • より大きい

  • 以上

  • より小さい

  • 以下

疑問符 (?) とアスタリスク (*) ワイルドカードがサポートされています。 複数の値を指定できます。

  • 大文字と小文字を区別する

  • 大文字と小文字を区別しない

$arg_{name}

リクエストヘッダー

header

リクエストに含まれるヘッダー。

パラメータ名を入力するか、ドロップダウンリストからパラメータを選択します。

  • 存在する

  • 存在しない

  • いずれかを含む

  • いずれかを含まない

  • より大きい

  • 以上

  • より小さい

  • 以下

複数の値を指定できます。

  • 大文字と小文字を区別する

  • 大文字と小文字を区別しない

$http_{name}

Cookie

cookie

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

cookie 名を入力します。

  • 存在する

  • 存在しない

  • いずれかを含む

  • いずれかを含まない

  • より大きい

  • 以上

  • より小さい

  • 以下

疑問符 (?) とアスタリスク (*) ワイルドカードがサポートされています。 複数の値を指定できます。

  • 大文字と小文字を区別する

  • 大文字と小文字を区別しない

$cookie_{name}

User-Agent

useragent

リクエストの User-Agent ヘッダー。

該当なし

  • いずれかを含む

  • いずれかを含まない

ドロップダウンリストから値を選択するか、*Chrome/25* などの User-Agent 値を入力できます。 疑問符 (?) とアスタリスク (*) ワイルドカードがサポートされています。 各式に最大 32 個の値を指定できます。 32 を超える User-Agent ヘッダーは有効になりません。

  • 大文字と小文字を区別する

  • 大文字と小文字を区別しない

$http_user_agent

範囲バケット

range

リクエストはパーセンテージに基づいてグループ化され、実行されます。

該当なし

  • 以下に等しい

  • 以下に等しくない

パーセンテージを入力します。

該当なし

-

時間範囲

time

リクエストが開始された時間範囲 (UTC + 08:00)。 例: 09:10 から 14:22。

該当なし

  • いずれかを含む

  • いずれかを含まない

09:10 から 14:22 などの時間範囲を入力します。

該当なし

-

Nginx 変数

ngxvar

上記の表のすべての変数が要件を満たしていない場合は、NGINX 変数を使用できます。 詳細については、「変数のアルファベット順インデックス」をご参照ください。

ドロップダウンリストから変数を選択するか、$region:$isp 形式で変数名を入力します。

  • 存在する

  • 存在しない

  • いずれかを含む

  • いずれかを含まない

  • より大きい

  • 以上

  • より小さい

  • 以下

複数の値を指定できます。

該当なし

${name}

IP アドレス検証モード

ルールエンジン機能には 2 つの IP アドレス検証モードがあり、クライアント IP アドレス上の POP の決定に影響します。

  • POP への接続に使用する IP アドレスに基づいて決定する: このモードでは、クライアントが POP への接続に使用する IP アドレスを検証します。 クライアントが POP に接続するときにプロキシを使用する場合、POP への接続に使用する IP アドレスはプロキシの IP アドレスです。

  • XFF IP アドレスに基づいて決定する: このモードでは、クライアントリクエストの XFF ヘッダーの最初の IP アドレスを検証します。 XFF IP アドレスは、クライアントが POP に接続するときにプロキシを使用するかどうかに関係なく、クライアント IP アドレスです。

IP アドレス検証モードの選択は、リクエストが POP に送信される前にプロキシを通過するかどうかによって異なります。

ルールを参照する機能が有効になる POP も、IP アドレス検証モードの選択に影響することに注意してください。 L2 POP で有効になるオリジン機能の場合、リクエストが通過する L1 POP はプロキシと見なされます。

たとえば、クライアント IP アドレスは 10.10.10.10 で、プロキシ IP アドレスは 192.168.0.1 です。

  • クライアントが POP に接続するときにプロキシを使用しない場合、次のルールが適用されます。

    • ユーザーリクエストの XFF ヘッダーの値は 10.10.10.10 です。

    • クライアント IP アドレス 10.10.10.10 は、クライアントが POP への接続に使用する IP アドレスです。

  • クライアントが POP に接続するときにプロキシを使用する場合、次のルールが適用されます。

    • ユーザーリクエストの XFF ヘッダーの値は 10.10.10.10,192.168.0.1 です。

    • クライアント IP アドレスは 10.10.10.10 です。

    • クライアントが POP への接続に使用する IP アドレスは、プロキシの IP アドレス 192.168.0.1 です。

    • クライアント IP アドレスは、クライアントが POP への接続に使用する IP アドレスではありません。

一部のインターネットサービスプロバイダー (ISP) は、特定の地域のクライアントにプライベート IP アドレスを割り当てる場合があります。 そのため、CDN POP はプライベート IP アドレスからのリクエストを受信する場合があります。

説明

プライベート IP アドレスには次のタイプがあります。

  • タイプ A プライベート IP アドレス: 10.0.0.0 から 10.255.255.255。 サブネットマスク: 10.0.0.0/8。

  • タイプ B プライベート IP アドレス: 172.16.0.0 から 172.31.255.255。 サブネットマスク: 172.16.0.0/12。

  • タイプ C プライベート IP アドレス: 192.168.0.0 から 192.168.255.255。 サブネットマスク: 192.168.0.0/16。

一致演算子

演算子

関数における対応するパラメータ条件関数

説明

以下に等しい

matchOperator パラメータの値は equals です。

すべての変数が一致値と等しいか等しくない場合にのみ、条件は真です。

以下に等しくない

matchOperator パラメータの値は equals で、negate パラメータの値は true です。

存在する

matchOperator パラメータの値は exists です。

変数が存在するかどうかに関係なく、条件は真です。

存在しない

matchOperator パラメータの値は exists で、negate パラメータの値は true です。

いずれかを含む

matchOperator パラメータの値は contains です。

変数が一致値のいずれかを含んでいるか、または含んでいない場合、条件は真です。 最大 32 個の一致値を指定できます。

次の照合モードがサポートされています。

  • 完全一致: 一致オブジェクトを入力します。 たとえば、一致値が「a」の場合、一致オブジェクトが「a」の場合にのみ条件は真です。

  • ワイルドカード一致: アスタリスク (*) をワイルドカードとして追加できます。 たとえば、a**a*a* は、それぞれ abc、bca、bcabc に対応できます。

いずれかを含まない

matchOperator パラメータの値は contains で、negate パラメータの値は true です。

より大きい

matchOperator パラメータの値は gt です。

>

より小さい

matchOperator パラメータの値は lt です。

<

以上

matchOperator パラメータの値は ge です。

>=

以下

matchOperator パラメータの値は le です。

<=

正規表現一致

matchOperator パラメータの値は regex です。

正規表現を一致値として入力できます。

説明

コンソールを使用するか、API 操作を呼び出してルールを作成する場合、正規表現の一致や不一致を含む、正規表現関連の演算子は使用できません。 ただし、演算子を含む既存のルールを表示することはできます。 正規表現関連の演算子を使用するには、チケットを送信するか、Edge Security Acceleration (ESA) を使用してください。

正規表現不一致

matchOperator パラメータの値は regex で、negate パラメータの値は true です。

ワイルドカード

ワイルドカード

説明

?

1 文字と一致させることができます。

*

任意の文字と一致させることができます。

ルールを参照できる機能

機能

参照

基本構成

条件付きオリジンを構成する

キャッシュ設定

リソースのキャッシュルールを作成する

HTTP レスポンスヘッダーを構成する

アクセス URL を書き換える

カスタムキャッシュキーを作成する

オリジン設定

HTTP リクエストヘッダーを構成する

HTTP レスポンスヘッダーを構成する

パラメータの書き換え

オリジンごとにオリジンホストを指定する

アクセスコントロール

リファラーブラックリストまたはホワイトリストを構成する

URL 署名を構成する

IP アドレスブラックリストまたはホワイトリストを構成する

User-Agent ブラックリストまたはホワイトリストを構成する

パフォーマンスの向上

パラメータを無視する

ビデオ関連の設定

範囲オリジンフェッチを構成する

トラフィック調整

個々のリクエストのトラフィック調整を構成する

手順

  1. Alibaba Cloud CDN コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、ドメイン名 をクリックします。

  3. ドメイン名 ページで、管理するドメイン名を見つけて、アクション 列の 管理 をクリックします。

  4. 左側のナビゲーションツリーで、[ルールエンジン] をクリックします。

  5. ルールの追加 をクリックします。

  6. ルールの追加 ページで、ルール名 パラメータと [ルールコンテンツ] パラメータを構成します。

  7. 送信 をクリックします。