条件付きオリジン機能は、ルールエンジンを使用して、リクエストヘッダー、クエリストリングパラメーター、パス、クライアント IP アドレスなどの指定された基準に基づいてユーザーリクエストをフィルタリングします。CDN は、基準に一致するリクエストを特定のオリジンアドレスにルーティングします。複数の設定を追加して、さまざまな条件に基づいてリクエストを異なるオリジンに転送できます。
前提条件
条件付きオリジンを設定する前に、ルールエンジンでルール条件を作成する必要があります。
注意事項
機能の競合:条件付きオリジン機能と 高度なオリジン 機能は相互に排他的です。どちらか一方しか有効にできません。
ワイルドカードのサポート:ルールエンジンでは、URI の一致する値はワイルドカードの
*(任意の数の文字に一致) と?(任意の 1 文字に一致) をサポートします。高度なオリジン機能のパス一致は、完全一致の値のみをサポートし、ワイルドカードはサポートしません。ルールの優先度と一致順序:条件付きオリジンは、条件付きオリジンの設定順序ではなく、ルールエンジン内の関連付けられたルール条件の優先度に基づいて評価されます。リクエストがルールに一致すると、評価は停止します。ルールエンジンでのルールの優先度は作成順によって決まり、先に作成されたルールほど優先度が高くなります。一致の優先度を調整するには、ルールを削除し、希望の順序で再作成する必要があります。
複数パス設定のヒント:パスを「含める」または「除外する」ルールを作成する際、1 つのルールの一致する値フィールドに複数のパス (複数行または複数の値として) を入力することで、設定を簡略化できます。
ルールの上限:条件付きオリジンが参照できるルール条件の数は、ルールエンジンのグローバルな上限に従います。単一のドメインにおいて、条件付きオリジン、高度なオリジン、Referer ベースのホットリンク保護を含むすべての機能にわたるルール条件への参照の合計数は 5 を超えることはできません。複雑な複数オリジンのシナリオでは、この上限を超えると設定が失敗します。多数のオリジンがある場合は、ルールの使用を慎重に計画するか、アクセラレーション用に別のドメインを使用することを推奨します。
OSS オリジンに関する考慮事項
オリジンが OSS バケットの場合、そのアドレスを ドメイン名 > 基本設定 > オリジンサイト情報 の下に追加し、オリジンタイプを OSS ドメインに設定する必要があります。これにより、CDN は OSS と正しく認証できるようになります。
複数の OSS オリジンのシナリオ:複数の OSS オリジンを設定する場合、それぞれに特定の オリジンホスト を設定する必要があります。ホストの値は、対応する OSS バケットドメイン (例:
dev-3mir.oss-cn-guangzhou.aliyuncs.com) と完全に一致する必要があります。オリジンホストが正しく設定されていない場合、またはデフォルトのオリジンホストに依存している場合、リクエストが誤ったバケットにルーティングされる可能性があります。これにより、
403 SignatureDoesNotMatchまたは404 Not Foundエラーが発生する可能性があります。一致ルールとフォールバックルールを含むすべての条件付きオリジンルールを、対応するオリジンとオリジンホストに明示的にバインドする必要があります。複数のオリジンを設定する場合は、基本オリジンに均等な重みを設定し、各条件付きオリジンに対して個別のルール条件を作成して、予測可能なルーティングを確保することを推奨します。
オリジンタイプの比較
条件付きオリジンと高度なオリジンの両方が、ルールエンジンからルール条件を参照して、柔軟なオリジンルーティングポリシーを作成できます。リクエストがルール条件に一致する場合、CDN は自動的にオリジンを選択します:
オリジンタイプ | トリガー条件 |
条件付きオリジン | リクエストが条件付きオリジンによって参照されるルール条件に一致する場合 |
高度なオリジン | リクエストが高度なオリジンによって参照されるルール条件に一致する場合 |
基本オリジン | リクエストが、どの条件付きオリジンまたは高度なオリジンのルールにも一致しない場合 (デフォルトのフォールバック) |
操作手順
Alibaba Cloud CDN コンソールにログインします。
左側のナビゲーションペインで [ドメイン名 ] をクリックします。
[ドメイン名] ページで、管理対象のドメイン名を見つけ、[アクション] 列の [管理] をクリックします。

オリジンサイト情報 セクションで、条件付き配信元 の横にある 拡張 をクリックします。
条件付き配信元の追加 をクリックします。
ルール条件 を設定します。
初めて設定を追加する場合、または既存のルール条件を修正する必要がある場合は、ルールエンジン ダイアログボックスで 条件付き配信元 をクリックします。これによりルールエンジンが開き、設定を追加または修正できます。詳細については、「ルールエンジン」をご参照ください。
既存のルール条件がある場合は、ルール条件 ドロップダウンリストから選択します。
配信元アドレス フィールドに、オリジンアドレスを入力します。オリジンアドレスには、IP アドレス、ドメイン名、OSS バケット、または Function Compute (FC) エンドポイントを指定できます。
OK をクリックして設定を完了します。
例:/api/* リクエストの FC へのルーティング
高度なオリジン機能は完全一致のみをサポートし、ワイルドカードや正規表現はサポートしていません。パスベースのオリジンルーティングを実装するには、ルールエンジンで条件付きオリジンを使用します。条件付きオリジン機能、ルールエンジン、URL リライトを組み合わせることで、/api/* パスへのリクエストを Function Compute (FC) オリジンにルーティングし、他のすべてのリクエストはデフォルトで OSS オリジンにルーティングできます。
ルールエンジンでのルールの作成
ドメイン名 に移動し、対象のドメインを見つけて、ルールエンジン ページに移動します。
ルールの追加 をクリックし、次の表の説明に従ってルール条件を設定します:
パラメーター
値
[ルール名]
識別しやすいようにカスタム名を入力します (例:
api-to-fc)。一致タイプ
URI
一致演算子
[次のいずれかを含む]
一致する値
[編集] をクリックし、
*/api/*と入力して Enter キーを押して追加します。ワイルドカードの*と?がサポートされています。1 つのルールで最大 32 の一致する値をサポートします。大文字と小文字の区別
[大文字と小文字を区別しない] (デフォルト)
重要ホスト名条件は追加しないでください。ホスト名条件はオリジンではなくリクエストドメインに一致します。ホスト名条件を追加すると、URL リライト後にルールがパスに一致しなくなる可能性があります。
送信 をクリックしてルールを保存します。
条件付きオリジンの設定
左側メニューで、ドメイン名 > 基本設定 に移動します。オリジンサイト情報 セクションで、条件付き配信元 の横にある展開アイコンをクリックします。
条件付き配信元の追加 をクリックし、ダイアログボックスで次の表の説明に従ってパラメーターを設定します:
パラメーター
値
[ルール条件]
ドロップダウンリストから、手順 1 で作成したルール (例:
api-to-fc) を選択します。[配信元アドレス]
Function Compute (FC) オリジンのアドレスを入力します。
OK をクリックして設定を保存します。
オリジンホストの設定
FC オリジンに特定のオリジンホストを設定して、CDN が正しい Host ヘッダーでオリジンフェッチリクエストを送信するようにします。
ドメイン名 ページの左側メニューで、Back-to-Origin 設定 > 設定 タブに移動します。
配信元に対する配信元ホスト セクションで、追加 をクリックします。
ダイアログボックスで、次のパラメーターを設定し、[OK] をクリックします。
パラメーター
説明
[配信元タイプ]
カスタム配信元 を選択します。条件付きオリジンで設定されたオリジンアドレスは、[基本オリジンアドレス] ドロップダウンリストには表示されません。[カスタムオリジン] を選択し、アドレスを手動で入力する必要があります。
[配信元アドレス]
手順 2 の FC オリジンアドレスを入力します。
[配信元ホストのタイプ]
使用するホスト値のタイプを選択します。FC オリジンの場合は、カスタム配信元ホスト を選択し、ドメイン名を手動で入力します。
[配信元ホスト]
FC ドメイン名を入力します (例:
your-fc-function.cn-hangzhou.fcapp.run)。OSS オリジンの場合、値は OSS バケットドメインと完全に一致する必要があります (例:
dev-3mir.oss-cn-guangzhou.aliyuncs.com)。[ルール条件]
任意。手順 1 で作成したルール条件 (例:
api-to-fc) を選択して、このオリジンホストをルールに一致するリクエストに限定します。
デフォルトのオリジンホストを無効にする必要はありません。同じオリジンに対してデフォルトのオリジンホストと特定のオリジン用のオリジンホストの両方が設定されている場合、特定のオリジン用のオリジンホストが優先されます。特定のオリジンホストが設定されていないオリジンについては、デフォルトのオリジンホストが引き続き有効です。詳細については、「オリジンホスト」をご参照ください。
URL リライトの設定 (任意)
FC オリジンで /api/ パスを /print/api/ パスにリライトする必要がある場合は、CDN の URL リライト機能も使用する必要があります:
ルールエンジンで、
/api/を/print/api/にリライトする URL リライトルールを設定します。手順 1 のルールエンジンでの URI 一致条件が、リライト後のパスをカバーしていることを確認します。たとえば、
*/api/*を使用するか、特定のパス/print/api/*に一致させます。
これらの設定が完了すると、CDN は /api/* へのフロントエンドリクエストを FC サービスにルーティングし、その他のリクエストはデフォルトで OSS オリジンにルーティングします。
例:Referer ベースのルーティング
次の例では、Referer ヘッダーに基づいてリクエストを異なるオリジンにルーティングする方法を示します。これは、ホットリンク保護や、リクエストのソースに基づいてアクセスを制御する場合に役立ちます。
Referer ルール条件の作成
CDN コンソールにログインし、対象のドメインを選択して、ドメイン名 > ルールエンジン に移動します。
ルールの追加 をクリックし、次の表の説明に従ってパラメーターを設定します。ルールエンジンには、専用の Referer 一致タイプはありません。Referer ベースの一致を実装するには、[リクエストヘッダー] 一致タイプを使用する必要があります:
パラメーター
値
[ルール名]
分かりやすい名前を入力します (例:
referer-routing)。一致タイプ
リクエストヘッダー
パラメーター名
Referer一致演算子
[次のいずれかを含む]
一致する値
この値には
example.comなどのリファラードメインを指定します。複数のドメインを追加できます。大文字と小文字の区別
[大文字と小文字を区別しない]
送信 をクリックしてルールを保存します。
条件付きオリジンの設定
ドメイン管理ページの左側メニューで、基本設定 タブに移動します。オリジンサイト情報 セクションで、条件付き配信元 の横にある展開アイコンをクリックします。
条件付き配信元の追加 をクリックし、ダイアログボックスで次の表の説明に従ってパラメーターを設定します:
パラメーター
値
[ルール条件]
ドロップダウンリストから
referer-routingを選択します。[配信元アドレス]
この Referer ソースのオリジンアドレスを入力します。
OK をクリックして設定を保存します。
例:中国本土と中国本土以外のユーザーを異なるオリジンにルーティング
次の例では、条件付きオリジンとルールエンジンを使用して、中国本土と中国本土以外のユーザーを異なるオリジンサーバーにルーティングする方法を示します。
CDN コンソールにログインします。ドメイン名 ページで、対象のドメインを見つけ、[操作] 列の [管理] をクリックします。左側メニューで ルールエンジン をクリックし、次に ルールの追加 をクリックします。
中国本土ルールの設定:ルールコンテンツエリアで、プラスアイコンをクリックして一致条件を追加します。[一致タイプ] を [IP ロケーション] に、[一致演算子] を 次のいずれかを含む に設定し、[修正] をクリックしてドロップダウンリストから一致する値として [中国本土] を選択します。ルールを送信して保存します。
海外ルールの設定 (フォールバック):別のルールを作成します。[一致タイプ] を [IP ロケーション] に、[一致演算子] を 次のいずれかを除く に設定し、一致する値を [中国本土] に設定します。ルールを送信して保存します。
条件付きオリジンの設定:オリジンサイト情報 セクションで、各ルールを対応するオリジンに関連付けます:
中国本土ルールを国内のオリジン (例:国内の OSS バケットまたは国内サーバー) に関連付けます。
海外ルールを海外のオリジン (例:海外の OSS バケットまたは海外サーバー) に関連付けます。
オリジンホストの設定:各オリジンに専用の [オリジンホスト] を設定して、ホスト値が対応するオリジンドメインと一致するようにします。
ドメイン管理ページの左側メニューで、Back-to-Origin 設定 > 設定 タブに移動します。配信元に対する配信元ホスト セクションで、追加 をクリックします。
配信元に対する配信元ホスト ダイアログボックスで、次のパラメーターを設定します。オリジンごとに 1 つのエントリを追加します:
パラメーター
値
オリジンタイプ
[カスタムオリジン]。条件付きオリジンで設定されたオリジンアドレスは、[基本オリジンアドレス] ドロップダウンリストには表示されません。[カスタムオリジン] を選択し、アドレスを手動で入力する必要があります。オリジンアドレスが既に基本オリジン設定に追加されている場合 (例:OSS オリジンとして)、[基本オリジンアドレス] を選択し、ドロップダウンリストから選択することもできます。
オリジンアドレス
条件付きオリジンに関連付けられたオリジンアドレスを入力します (例:国内または海外の OSS バケットのドメイン)。
オリジンホストタイプ
カスタムオリジンホスト
オリジンホスト
オリジンドメインに一致するホスト値を入力します (例:
bucket.oss-cn-hangzhou.aliyuncs.com)。ルール条件
このオリジンに対応するルール条件を選択します (例:中国本土ルールまたは中国本土以外のルール)。
[OK] をクリックして設定を完了します。
デフォルトのオリジンホストを無効にする必要はありません。同じオリジンに対してデフォルトのオリジンホストと特定のオリジン用のオリジンホストの両方が設定されている場合、特定のオリジン用のオリジンホストが優先されます。特定のオリジンホストが設定されていないオリジンについては、デフォルトのオリジンホストが引き続き有効です。
推奨事項
中国本土以外のユーザーが中国本土のオリジンにアクセスする際に高遅延や不安定な接続が発生するシナリオでは、OSS Transfer Acceleration を使用してオリジンフェッチのリンクを最適化することを推奨します。次のように設定します:
中国本土の条件付きオリジンについては、オリジンを OSS の標準パブリックエンドポイント (例:
bucket.oss-cn-hangzhou.aliyuncs.com) に設定します。海外の条件付きオリジンについては、オリジンを OSS Transfer Acceleration エンドポイント (例:
bucket.oss-accelerate.aliyuncs.com) に設定します。
OSS は、グローバルに分散されたアクセラレーションノードを使用してクロスボーダー転送リンクを最適化し、オリジンフェッチの遅延を大幅に削減できます。詳細については、「OSS Transfer Acceleration」をご参照ください。