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

Edge Security Acceleration:ルールエンジン

最終更新日:Jun 18, 2025

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

背景情報

DCDN コンソールは、有効期間の構成やオリジンへのパラメーターの書き換えなど、多くの基本的な機能を提供します。

ただし、一部の要件では高度な設定が必要です。 たとえば、パス /example を含むリクエストを特定のオリジンサーバーにルーティングする場合があります。 この場合、基本機能とルールエンジンを使用して構成をカスタマイズできます。 さらに、DCDNEdgeRoutine も提供しており、高い柔軟性を実現します。

構成機能

基本機能

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

エッジ関数

実装

一般的な構成

柔軟な構成

非常に柔軟な構成

シナリオ

一般的な要件

高度なカスタム要件

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

難易度 (ユーザーの技術力)

構成の柔軟性

使用上の注意

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

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

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

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

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

ルールの構文

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

ロジック

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

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

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

条件式の パラメーター

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

名前

対応する パラメーター condition 関数の対応する パラメーターインストールが完了したら

説明

必須

条件付き一致

一致

条件付き一致式。

はい

論理判断

ロジック

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

はい

条件付き判断の基準

基準

条件一致式の判断基準です。

はい

一致タイプ

MatchType

一致させる情報の種類。この式は、ユーザー リクエストで伝達される特定の種類の情報を照合しようとします。

はい

一致オブジェクト

MatchObject

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

いいえ

一致演算子

MatchOperator

一致の演算子。

はい

一致値

MatchValue

ユーザー リクエストで送信される情報と照合される事前設定値。

はい

条件判断値の否定

negate

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

はい

大文字と小文字の区別

caseSensitive

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

いいえ

ルール名

name

ルールの名前。

はい

有効ステータス

ステータス

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

はい

条件式の構成

一致タイプ

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

説明

一致オブジェクト

一致演算子

一致値

大文字と小文字の区別

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 アドレスを割り当てる場合があります。そのため、DCDN 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

一致演算子

演算子

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

説明

等しい

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

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

等しくない

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

存在する

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

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

存在しない

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

いずれかを含む

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

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

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

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

  • ワイルドカード一致:ワイルドカード文字としてアスタリスク (*) を追加できます。たとえば、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 リクエストヘッダーを変更する

オリジン HTTP リクエストヘッダー

オリジン HTTP レスポンスヘッダー

キャッシュ構成

キャッシュの Time-to-live を作成する

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

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

手順

  1. DCDN コンソール にログインします。

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

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

  4. 対象のドメイン名の左側のナビゲーションウィンドウで、[ルールエンジン] をクリックします。

  5. [ルールの作成] をクリックします。

  6. [ルールの作成] ページで、[ルール名][ルールコンテンツ] を設定します。

  7. [送信] をクリックして構成を完了します。