デフォルトでは、CDN が送信するオリジンリクエストの Host ヘッダーは高速化ドメイン名になります。この機能を使用すると、これらのリクエストの Host ヘッダーの値をカスタマイズできます。
デフォルトオリジンホストについて
複数の高速化ドメイン名から異なる静的リソースを提供する場合、一般的な方法として、各ドメインに個別のオリジンサーバーを設定します。
しかし、複数のサーバーを維持するのは非効率であり、特にオリジントラフィックが少ない高速化ドメイン名の場合はなおさらです。この問題は、バーチャルホストを使用することで解決できます。
バーチャルホスト
バーチャルホストを使用すると、1 台の Web サーバーで複数の Web サイトをホストできます。サーバーは、異なるドメイン名またはホスト名を使用して Web サイトを区別し、分離します。ユーザーが特定のドメイン名またはホスト名をリクエストすると、サーバーは一致するバーチャルサイトにリクエストをルーティングし、対応するコンテンツを返します。
Nginx での実装
Nginx は server ブロックを使用して複数の仮想サイトを設定します。次の例では、基本的な設定を示します。
server {
listen 80;
server_name example.org www.example.org;
...
}
server {
listen 80;
server_name example.net www.example.net;
...
}
server {
listen 80;
server_name example.com www.example.com;
...
}
この設定では、example.org、example.net、および example.com の 3 つの仮想サイトを定義します。Nginx は Host ヘッダーを server_name と照合して、正しい仮想サイトを選択します。一致が見つからない場合、Nginx はデフォルトの仮想サイトからコンテンツを配信します。デフォルトサイトが明示的に設定されていない場合、最初の server ブロックがデフォルトになります。
デフォルトオリジンホスト
URL にアクセスすると、Host ヘッダーが指定されていない場合、リクエストの Host ヘッダーはデフォルトで URL のホストとポートに設定されます。CDN は、Host ヘッダーを加速ドメイン名に設定することでこのデフォルト値を上書きします。オリジンサーバーの仮想ホスティング設定に基づいて、このデフォルト値をカスタマイズできます。
オリジンサーバーは、リクエストを異なる仮想サイトにルーティングするために、Host ヘッダーを使用するように設定する必要があります。そうしないと、この機能は正常に機能しません。
オリジンサーバーが HTTPS プロトコルを使用する場合、デフォルトのオリジンホストの設定に加えて、通常は デフォルト back-to-origin SNI も設定する必要があります。オリジンホストとオリジン SNI の設定に不整合がある場合 (たとえば、HOST がオリジンドメイン名に設定され、SNI がアクセラレーションドメイン名に設定されている場合など)、SSL ハンドシェイクの失敗やオリジンサーバーエラーが発生する可能性があります。オリジンホストとオリジン SNI の両方を、同じドメイン名 (通常はオリジンドメイン名またはアクセラレーションドメイン名であり、オリジンサーバー証明書および仮想ホスト設定と一致する必要があります) に設定することを推奨します。コンソールの Back-to-Origin 設定 ページでは、Back-to-Origin ホスト と デフォルト back-to-origin SNI は 2 つの個別の設定項目です。各項目について個別に 変更 をクリックして設定する必要があります。
手順
-
CDN コンソールにログインします。
-
左側のナビゲーションペインで、ドメイン名を選択します。
-
ドメイン名リストで、対象のドメイン名を選択します。
-
Back-to-Origin 設定 タブをクリックします。
-
Back-to-Origin ホスト セクションで、変更 をクリックします。
-
Back-to-Origin ホスト スイッチをオンにし、ドメインタイプ を選択します。
|
ドメインタイプ |
説明 |
|
CDN ドメイン |
オリジンホストを高速化ドメイン名に設定します。 |
|
オリジンドメイン |
オリジンホストをオリジンサーバーのドメイン名に設定します。オリジンサーバーが IP アドレスで指定されている場合、このオプションは選択できません。オリジンサーバーが OSS ドメインの場合、この機能はデフォルトで有効になり、オリジンホストはオリジンドメインに設定されます。 |
|
カスタムドメイン |
オリジンホストを指定したカスタムドメインに設定します。カスタムドメイン名がオリジンサーバーにバインドされていることを確認してください。そうでない場合、オリジンリクエストが失敗します。オリジンサーバーが複数のドメイン名にバインドされており、特定のドメイン名からリソースを取得する必要がある場合は、このオプションを使用してください。 |
オリジンサーバーが HTTPS プロトコルを使用する場合、同じ Back-to-Origin 設定 ページで デフォルト back-to-origin SNI も設定する必要があります。SSL ハンドシェイクの失敗やオリジンサーバーの拒否を避けるため、Back-to-Origin ホスト と デフォルト back-to-origin SNI を同じドメイン名 (通常はオリジンドメイン名) に設定することを推奨します。たとえば、Back-to-Origin ホスト をオリジンドメイン名に設定し、デフォルト back-to-origin SNI を加速ドメイン名に設定した場合、オリジンサーバーの証明書検証が失敗する可能性があります。コンソールでは、Back-to-Origin ホスト と デフォルト back-to-origin SNI は、同じ Back-to-Origin 設定 ページにある 2 つの個別の設定項目であり、それぞれ 変更 ボタンを使用して設定します。
-
OK をクリックします。
設定例
例 1:オリジンサーバーがドメイン名で指定されている場合
デフォルトでは、この機能は無効になっています。手動で有効にすることができます。
設定:
-
アクセラレーションドメイン名:
image.example.com -
オリジンサーバーアドレス:
source.example.com
各ドメインタイプの動作は次のとおりです。
-
CDN ドメイン:CDN がオリジンリクエストを実行すると、オリジンサーバー
source.example.com上の仮想サイトimage.example.comからリソースを取得します。 -
オリジンドメイン: CDN がオリジンリクエストを実行すると、
source.example.comからリソースを取得します。 -
カスタムドメイン:オリジンホストは、入力したカスタムドメイン名になります。
例 2:オリジンサーバーが IP アドレスで指定されている場合
デフォルトでは、この機能は無効になっています。手動で有効にすることができます。
設定:
-
高速化ドメイン名:
example.com -
オリジンサーバーアドレス:
10.10.10.10
各ドメインタイプの動作は次のとおりです。
-
CDN ドメイン: CDN がオリジンリクエストを実行すると、ホスト
10.10.10.10上のexample.comの仮想サイトからリソースを取得します。 -
オリジンドメイン:オリジンサーバーが IP アドレスで指定されている場合、このオプションは選択できません。
-
カスタムドメイン: CDN がオリジンリクエストを実行すると、
10.10.10.10ホスト上のカスタムドメインの仮想サイトからリソースを取得します。
例 3:オリジンサーバーが OSS ドメインの場合
設定:
-
高速化ドメイン名:
example.com -
オリジンサーバーアドレス:
example.oss-cn-hangzhou.aliyuncs.com
オリジンサーバーが OSS ドメインの場合、この機能はデフォルトで有効になり、オリジンホストはオリジンドメインに設定されます。設定は変更することも可能です。各ドメインタイプの動作は次のとおりです。
-
CDN ドメイン:CDN がオリジンリクエストを実行すると、
example.oss-cn-hangzhou.aliyuncs.comOSS ドメイン上のexample.comサイトからリソースを取得します。 -
オリジンドメイン: CDN がオリジンリクエストを実行すると、OSS ドメイン
example.oss-cn-hangzhou.aliyuncs.comからリソースを取得します。 -
カスタムドメイン:CDN がオリジンリクエストを実行すると、
example.oss-cn-hangzhou.aliyuncs.comサイトにあるカスタムドメイン用の仮想サイトからリソースを取得します。
よくある質問
オリジンホストの設定後に発生する 404、500、502、403 エラー、ERR_TOO_MANY_REDIRECTS、およびリダイレクトの失敗のトラブルシューティング方法については、オリジンフェッチのトラブルシューティングをご参照ください。