オリジン 301/302 リダイレクト機能を使用すると、CDN の POP (Point of Presence) がオリジンサーバーからの 301 および 302 応答を処理できます。この機能を有効にすると、POP は 301/302 応答をクライアントに返す代わりに、リダイレクトを直接処理します。これにより、データ交換プロセスが簡素化され、リソース配信が高速化されます。
前提条件
オリジンサーバーで 301/302 リダイレクトが有効になっていること。
背景情報
301 および 302 は、リソースが移動したことを示す HTTP ステータスコードです。この状況では、サーバーは通常、応答に Location ヘッダーを含めます。クライアントが Location ヘッダーを含む 301 または 302 応答を受信すると、クライアントは Location ヘッダーで指定されたアドレスに新しいリクエストを送信してリソースを取得します。
仕組み
301/302 リダイレクトでは、オリジンフェッチ中に CDN ノードがオリジンサーバーから 301 または 302 ステータスコードを受信した場合、ノードはリダイレクトに従って新しい場所からリソースを取得します。301 または 302 ステータスコードはクライアントに返されません。
クライアントがファイル
http://example.com/examplefile.txtをリクエストします。ファイルは CDN ノードにキャッシュされていません。ノードはオリジンサーバーからファイルをフェッチします。
オリジンサーバーは 301/302 ステータスコードを返します。Location アドレスは
http://www.example.org/examplefile.txtです。CDN ノードは応答を受信し、Location アドレス
http://www.example.org/examplefile.txtにリクエストを送信してリソースを取得します。CDN ノードはリソースを取得し、CDN ノードにキャッシュします。
CDN ノードはリソースをクライアントに返します。
その後、別のクライアントがファイル http://example.com/examplefile.txt をリクエストした場合、ファイルは CDN ノードのキャッシュから直接提供されます。
注意事項
オリジン 301/302 リダイレクトを設定する前に、ApsaraVideo VOD の高速化ドメイン名にオリジンホストが設定されているかどうかを確認してください。
デフォルトのオリジンホストまたは特定のオリジンホストが設定されていない場合:オリジンサーバーが CDN ノードに 301 または 302 応答を返すと、後続のオリジンフェッチリクエストの HOST ヘッダーは Location ヘッダーのドメイン名を使用します。
高速化ドメイン名にオリジンホストが設定されている場合:オリジンサーバーが 301/302 ステータスコードと Location URL を CDN POP に返すと、Location URL へのオリジンフェッチリクエストの Host ヘッダーは、ApsaraVideo VOD で高速化ドメイン名に設定されたオリジンホストになります。デフォルトのオリジンホストは高速化ドメイン名です。オリジンサーバーが Location URL の Host ヘッダーを Location URL のドメイン名にすることを要求する場合、アクセスに失敗する可能性があります。この要件がある場合は、チケットを起票してこのバックエンド設定をリクエストしてください。詳細については、「お問い合わせ」をご参照ください。
操作手順
ApsaraVideo VOD コンソールにログインします。
左側のナビゲーションウィンドウで、[設定管理] > [CDN 設定] > [ドメイン名] を選択します。
管理するドメイン名を見つけ、[操作] 列の [設定] をクリックします。
ドメイン名の左側のナビゲーションウィンドウで、Back-to-Origin をクリックします。
[設定] タブの [オリジン 301/302 リダイレクト] セクションで、[オリジン 301/302 リダイレクト] スイッチをオンにし、パラメーターを設定します。
パラメーター
説明
301/302 追跡回数上限
単一のユーザーリクエスト中に、CDN ノードが Location アドレスへのリダイレクトをフォローできる最大回数です。制限を超えた場合、ノードは 301/302 ステータスコードを直接ユーザーに返します。有効値:1~5。デフォルト値:2。
説明301/302 リダイレクトの最大回数は、オリジンフェッチの最大回数に影響します。オリジンフェッチの最大回数は、単一のユーザーリクエスト中に CDN ノードがオリジンサーバーにアクセスできる最大回数です。
オリジンフェッチの最大回数 = 301/302 リダイレクトの最大回数 + 1。デフォルトのオリジンフェッチの最大回数は 3 です。有効値:2~6。
301/302 追跡のパラメーター保持
保持:301/302 リダイレクトをフォローする際に、元のリクエストパラメーターを保持します。パラメーターは Location アドレスのサーバーに渡されます。
保持しない:301/302 リダイレクトをフォローする際に、元のリクエストパラメーターを削除します。
301/302 追跡のリクエストヘッド保持
保持:301/302 リダイレクトをフォローする際に、元のリクエストヘッダーを保持します。ヘッダーは Location アドレスのサーバーに渡されます。
保持しない:301/302 リダイレクトをフォローする際に、元のリクエストヘッダーを削除します。
決定 をクリックして設定を完了します。
設定例
シナリオ:オリジンサーバー上のリソースが別のアドレスに移動されました。ユーザーには変更を意識させることなく、元のドメイン名を使用してリソースにアクセスさせたい場合。
設定:ドメイン名 example.com に対して、以下の設定でオリジン 301/302 リダイレクトを有効にします。
最大リダイレクト回数 (301/302):2
リダイレクト時にリクエストパラメーターを保持:保持しない
リダイレクト時にリクエストヘッダーを保持:保持しない
結果:クライアントがファイル http://example.com/examplefile.txt をリクエストします。ファイルが CDN ノードにキャッシュされていない場合、ノードはオリジンサーバーにリソースをリクエストします。オリジンサーバーは 301/302 ステータスコードとリダイレクトアドレス http://www.example.org/examplefile.txt を返します。
CDN ノードが 301/302 ステータスコードを受信した後、リダイレクトアドレスにリクエストを送信します。リクエストは最大 2 回までリダイレクトできます。リクエストが失敗した場合、301/302 ステータスコードがクライアントに返されます。
CDN ノードはリソースを取得し、クライアントに返して、CDN ノードにキャッシュします。
他のクライアントがファイルをリクエストすると、CDN はキャッシュされたリソースを直接返します。