条件付きオリジン機能は、ルールエンジンを使用して、リクエストヘッダー、クエリ文字列パラメーター、パス、クライアント IP アドレスなどの指定された基準に基づいてユーザーリクエストをフィルタリングします。CDN は、基準に一致するリクエストを特定のオリジンアドレスにルーティングします。複数の設定を追加して、異なる条件に基づいてリクエストを異なるオリジンに転送できます。
前提条件
ルールエンジンでルール条件を作成してから、条件付きオリジンを設定する必要があります。
注意事項
機能の競合:条件付きオリジンと高度なオリジン機能は相互に排他的です。どちらか一方のみを有効にできます。
ワイルドカードのサポート:ルールエンジンでは、URI 一致値でワイルドカードの
*(任意の数の文字に一致) と?(任意の 1 文字に一致) がサポートされています。高度なオリジン機能のパスマッチングは、ワイルドカードではなく、完全一致の値のみをサポートします。ルールの優先度と一致順序:条件付きオリジンは、条件付きオリジン設定の順序ではなく、ルールエンジン内の関連するルール条件の優先度に基づいて評価されます。リクエストがルールに一致すると、評価は停止します。ルールエンジンでのルールの優先度は作成順に決定され、先に作成されたルールほど優先度が高くなります。一致の優先度を調整するには、ルールを削除し、目的の順序で再作成する必要があります。
複数パス設定のヒント:パスを「含める」または「除外する」ルールを作成する際、1 つのルールの一致値フィールドに複数のパス (複数行または複数の値として) を入力することで、設定を簡素化できます。
ルールの上限:条件付きオリジンが参照できるルール条件の数は、ルールエンジン内のグローバルな上限に従います。単一のドメインの場合、条件付きオリジン、高度なオリジン、Referer ベースのホットリンク対策を含むすべての機能にわたるルール条件への参照の合計数は 5 を超えることはできません。複雑な複数オリジンシナリオでは、この上限を超えると設定が失敗します。ルールの使用を慎重に計画するか、多数のオリジンがある場合はアクセラレーションに別のドメインを使用することを推奨します。
OSS オリジンに関する考慮事項
オリジンが OSS バケットの場合、ドメイン名 > 基本設定 > オリジンサイト情報 でアドレスを追加し、オリジンタイプを OSS ドメインに設定する必要があります。これにより、CDN が OSS との認証を正しく行えるようになります。
複数の OSS オリジンシナリオ: 複数の OSS オリジンを設定する場合、それぞれに特定の オリジンホスト を設定する必要があります。 Host の値は、
dev-3mir.oss-cn-guangzhou.aliyuncs.comのように、対応する OSS バケットドメインと完全に一致する必要があります。オリジンホストが正しく設定されていない場合や、デフォルトのオリジンホストに依存している場合、リクエストが誤ったバケットにルーティングされる可能性があります。これにより、
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/*大文字と小文字の区別
[大文字と小文字を区別しない] (デフォルト)
重要ホスト名条件を追加しないでください。ホスト名条件はオリジンではなくリクエストドメインに一致します。ホスト名条件を追加すると、URL リライト後にルールがパスに一致しなくなる可能性があります。
送信 をクリックしてルールを保存します。
条件付きオリジンの設定
左側のナビゲーションペインで、ドメイン名 > 基本設定 の順に選択します。オリジンサイト情報 セクションで、条件付き配信元 の横にある展開アイコンをクリックします。
条件付き配信元の追加 をクリックし、ダイアログボックスで次の表の説明に従ってパラメーターを設定します:
パラメーター
値
[ルール条件]
ドロップダウンリストから、ステップ 1 で作成した
api-to-fcなどのルールを選択します。[配信元アドレス]
Function Compute (FC) オリジンのアドレスを入力します。
OK をクリックして設定を保存します。
オリジンホストの設定
オリジン設定で、このルールのオリジンホストを FC ドメイン名に設定し、オリジンへのリクエストが正しい Host ヘッダーを使用するようにします。
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-routingのような、わかりやすい名前を入力します。一致タイプ
Referer
一致演算子
[次のいずれかを含む]
一致値
example.com。この値は、リファラードメインを指定します。複数のドメインを追加できます。大文字と小文字の区別
[大文字と小文字を区別しない]
送信 をクリックしてルールを保存します。
条件付きオリジンの設定
ドメイン管理ページの左側のナビゲーションペインで、基本設定 タブに移動します。オリジンサイト情報 セクションで、条件付き配信元 の横にある展開アイコンをクリックします。
条件付き配信元の追加 をクリックし、ダイアログボックスで次の表に示すようにパラメーターを設定します。
パラメーター
値
[ルール条件]
ドロップダウンリストから
referer-routingを選択します。[配信元アドレス]
この Referer ソースのオリジンのアドレスを入力します。
OK をクリックして設定を保存します。
よくある質問
なぜリクエストが誤ってルーティングされたり、失敗したりするのですか?
次の項目を確認してください:
ルールの一致条件の確認: URI やヘッダーなどのリクエストパラメーターが、設定したルールと一致していることを確認します。なお、URI パスの一致には、
/api/*のようなワイルドカードが必要です。ワイルドカード*は 0 個以上の文字に一致し、?は任意の 1 文字に一致します。一致する値にワイルドカードが含まれていない場合、一致に失敗する可能性があります。オリジンホスト設定の確認:オリジンが OSS バケットの場合、各条件付きオリジンにオリジンホストを指定し、その値が対応する OSS バケットドメインと完全に一致していることを確認してください。オリジンホストの設定が正しくないと、OSS の署名認証が失敗し、403 エラーが発生します。
オリジンアドレスの確認:オリジンアドレスが正しく、オリジンサービスが正常に稼働していることを確認してください。OSS バケットドメインに直接アクセスすることで、オリジンの可用性を確認できます。
キャッシュステータスの確認:設定を変更した後、CDN エッジノードは古い設定でキャッシュされたコンテンツを配信している可能性があります。キャッシュ更新を実行して、新しい設定がすぐに有効になるようにします。Cookie ベースの条件付きオリジンルールの場合、テストアカウントがログインしていない (リクエストに Cookie が含まれていない) か、キャッシュがクリアされていない場合、ルールはトリガーされません。テスト時には、
curl -v -H "Cookie: key=value"コマンドを使用して Cookie を含むリクエストをシミュレートし、ルールが正しく一致するかどうかを確認することを推奨します。OSS 権限の確認:OSS バケットへのオリジンリクエストが「You have no right to access this object」というメッセージとともに 403 エラーを返す場合は、OSS バケットのアクセスコントロールリスト (ACL) 権限を確認してください。バケットがプライベートの場合、その権限をパブリック読み取りに設定するか、CDN でオリジンリクエストの認証を設定する必要があります。
ルール条件の参照数の確認:ドメインのルール条件の参照総数が 5 の上限を超えていないことを確認してください。上限を超えると、新しい設定は有効になりません。
地域ベースのルーティング
ルールエンジンで条件付きオリジンを使用して、地域ごとにトラフィックをルーティングできます。次のように設定を構成します:
地域別のルール条件を作成: CDN コンソールにログインし、対象のドメイン名を選択して、ドメイン名 > ルールエンジン に移動し、ルールの追加 をクリックします。
中国本土ルールの設定:一致タイプを [ユーザーの地理的位置] に設定し、一致値を [中国本土] に設定してルールを保存します。
海外ルールの設定 (フォールバック):一致タイプを [ユーザーの地理的位置] に設定し、一致値を [中国大陸以外の地域] に設定してルールを保存します。
条件付きオリジンの設定: オリジンサイト情報 セクションで、2つの各ルールを対応するオリジンに関連付けます:
中国本土ルールを国内のオリジン (国内の OSS バケットやサーバーなど) に関連付けます。
中国大陸以外の地域 (海外) ルールを海外のオリジン (海外の OSS バケットやサーバーなど) に関連付けます。
オリジンホストの設定:各オリジンに対して、特定のオリジンホストを設定し、Host の値がそれぞれのオリジンドメインと一致するようにします。
越境最適化の推奨事項
中国大陸以外の地域のユーザーが中国本土内のオリジンにアクセスする際に、高遅延や不安定な接続が発生する場合は、OSS 転送アクセラレーションを使用して越境オリジン接続を最適化することを推奨します:
中国本土のユーザー向けの条件付きオリジンは、
bucket.oss-cn-hangzhou.aliyuncs.comなどの通常のパブリック OSS ドメインにリクエストを送信します。中国本土以外の地域のユーザー向けの条件付きオリジンは、
bucket.oss-accelerate.aliyuncs.comなどの OSS 転送アクセラレーションドメインにリクエストを送信します。
OSS 転送アクセラレーションは、グローバルに分散されたアクセラレーションノードを使用して越境接続を最適化し、オリジンリクエストの遅延を効果的に削減できます。OSS 転送アクセラレーションの詳細については、「転送アクセラレーションを使用した OSS へのアクセス」をご参照ください。
反映時間とキャッシュ更新
反映時間:条件付きオリジン設定を変更した後、変更がグローバルに反映されるまで通常 5〜10 分かかります。CDN の設定は、すべてのエッジノードに段階的にデプロイされます。この期間中、古い設定と新しい設定が共存する可能性があります。
キャッシュ更新の推奨事項:
設定が有効になった後、古い設定で取得されたコンテンツが CDN エッジノードにキャッシュされている場合は、ユーザーが最新のコンテンツにアクセスできるようにキャッシュを更新してください。CDN コンソールで手動でキャッシュを更新するか、
RefreshObjectCachesAPI を呼び出してオブジェクトを一括で更新できます。設定変更がオリジンリクエストルールのみに影響し、キャッシュされたコンテンツ自体には影響しない場合、CDN エッジノードはオリジンリクエストルールをリアルタイムで評価するため、通常、キャッシュ更新は必要ありません。
初めて条件付きオリジンを設定する場合は、設定完了後に curl -I コマンドを使用して、異なるパスに対するオリジンリクエストの結果をテストし、設定が有効になったことを確認することをお勧めします。
プライベート OSS オリジンの認証
OSS バケットがプライベートの場合、CDN はリソースを取得するために適切な認証が必要です。サービスリンクロールを使用して、CDN にプライベート OSS バケットへのアクセスを許可します。詳細な手順については、「CDN がプライベート OSS バケットにアクセスできるようにする」をご参照ください。CDN はサービスリンクロールを使用して OSS のアクセス権を取得します。認可を許可すると、CDN はプライベートバケットからコンテンツを取得する際に自動的に認証情報を含めるため、手動での設定は不要です。
GA での 502 エラーのトラブルシューティング
CDN を Global Accelerator (GA) および条件付きオリジンと併用して 502 エラーが発生した場合は、以下を確認してください:
オリジンホスト設定の確認:条件付きオリジンを使用する場合、デフォルトのオリジンホストを削除し、代わりに特定のオリジンホストを設定する必要があります。中国本土からのトラフィックと中国大陸以外の地域からのトラフィックを別々に処理するために、2 つのルールを設定することを推奨します。1つは中国本土からのトラフィックに一致するルールで、オリジンを中国大陸のサーバーの IP アドレスに、特定のオリジンホストを CDN アクセラレーションドメインに設定します。もう1つは中国大陸以外の地域からのトラフィックに一致するルールで、オリジンを GA オリジンドメインに、特定のオリジンホストを GA オリジンドメインに設定します。
プロトコルとポートの整合性の確認:GA リスナーポートが CDN オリジンリクエストポートと一致していることを確認してください。GA が HTTPS ポート 443 を使用する場合、CDN もポート 443 を介して GA からコンテンツを取得することを推奨します。オリジンに HTTPS 証明書が設定されていない場合は、GA で HTTP ポート 80 のリスナーを作成し、CDN が HTTP ポート 80 を介して GA からコンテンツを取得するように設定できます。これにより、プロトコルやポートの不一致による 502 エラーを回避できます。
代替ソリューション:上記の設定が複雑すぎる場合は、Edge Security Acceleration (ESA) への移行を検討してください。ESA は、より柔軟な条件付きオリジン設定と独立したオリジンリクエストポート設定をサポートしています。
ホットリンク対策への影響
いいえ。Referer ベースのホットリンク対策や URL 認証を含むホットリンク対策ポリシーは、CDN ドメイン全体にグローバルに適用され、条件付きオリジン設定の影響を受けません。条件付きオリジンを設定した後も、ホットリンク対策機能は既存のポリシーに基づいて意図通りに機能し続けます。
オリジンサーバーのパス設定
いいえ。オリジンにドメイン名を設定するだけでよく、URL パスルールを追加する必要はありません。CDN は、リクエストの完全な URL に基づいてリクエストのオリジンを決定します:
リクエストが条件付きオリジンルールを満たす場合、リクエストはそのルールに関連付けられたオリジンにルーティングされます。
リクエストがどの条件付きオリジンルールも満たさず、基本オリジンが存在する場合、リクエストは基本オリジンにルーティングされます。
CDN コンソールで対応するオリジンドメインを追加し、各条件付きオリジンに特定のオリジンホスト (オリジンドメイン) を設定するだけで済みます。オリジンで追加の URI 一致ルールを設定する必要はありません。