オーバーライドホストの指定

最初のリクエストで使われた Host に関係なく、オリジンに送信される Host ヘッダーを書き換えたい場合は、オーバーライドホストを指定します。複数のドメインがサービスに紐づけられていて、それらすべてに同じオリジンから配信したい場合や、オリジンが期待するドメインが Fastly サービスで指定されたものと異なる場合、またはオリジンに送信される Host ヘッダーが最初のリクエストで使用された Host と異なる場合にこれを使用します。

特定のサービスの Settings ページでオーバーライドホストのドメイン名を指定するか、または特定のホストの Origins ページでホストを指定することで、オリジンに送信される Host ヘッダーをオーバーライドすることができます。

以下では、オーバーライドホストの使用に適している例をご紹介します。

  • Amazon S3Google Cloud Storage、 などのバックエンドを使用する場合、これらのプロバイダーがリクエストをコンテンツに直接ルーティングできるよう適切な Host ヘッダーを使用する必要があります。各プロバイダーは Host ヘッダーを使用して、リクエストをお客様のアカウントのストレージ場所と関連付けます。例えば、Amazon S3 を使用してオリジンをセットアップした場合、S3 バケットの名前を Host ヘッダーとして送信します。コンテンツをホストしているバケットと同じ名前の Host ヘッダーのみを受け付けるように Amazon を設定します。your-domain.com へのリクエストを <BUCKET>.s3.<REGION>.amazonaws.com に書き換えないと、リクエストが拒否されます。

  • www.abc.comwww.myexample.comwww.mysite.com の3つのサイトを含むサービスで、単一のオリジンを使用しているとします。Host ヘッダーをオリジンが対応可能なもの (例:origin.example.com) にオーバーライドすることで、同じオリジンが各ドメインにレスポンスするように設定することができます。その結果、www.abc.comwww.myexample.com、または www.mysite.com へのリクエストに対して、origin.example.com から取得したコンテンツを返すようになります。

注意

最初にオーバーライドホストをグローバルに設定し、後でオリジンごとにオーバーライドホストを設定するように変更した場合、Fastly がキャッシュ検索に使用する Host ヘッダーが、クライアントの元の Host ヘッダーから変更されるため、キャッシュミスとオリジンのトラフィックが一時的に増加します。新しいオブジェクトが新しいホストにキャッシュされると、キャッシュヒットとして配信されます。

オリジンレベルでホストをオーバーライドする

特定のホスト名をそのホスト名に転送する必要があるオリジンを使用している場合、オリジンごとにオーバーライドホストを追加できます。ホストを追加したら、以下の手順に従ってください。

  1. Fastly コントロールパネルにログインします。
  2. Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインによる検索が行えます。
  3. Edit configuration をクリックし、アクティブなバージョンをクローンするオプションを選択します。
  4. Origins をクリックします。
  5. Hosts のセクションで、編集するホストの隣にある鉛筆をクリックします。
  6. Override host フィールドに、使用しているオリジンに基づいてオーバーライド Host ヘッダーのホスト名を入力します。このフィールドの値は、グローバルなオーバーライドホスト設定よりも優先されます。例:
    • オリジンに Amazon S3 を使用する場合、<BUCKET>.s3.<REGION>.amazonaws.com と入力します。
    • オリジンに Google Cloud Storage を使用する場合、<BUCKET>.storage.googleapis.com と入力します。
ヒント

サードパーティサービスの Host ヘッダーのその他の例については、Host ヘッダーのオーバーライドに関する開発者向けドキュメントをご覧ください。

  1. Update をクリックします。新しいオーバーライドホストは、Override host セクションの Show all details フィールドの下に表示され、VCL で以下のようなコードブロックがオリジンの設定に追加されます。

    1Backend F_Host_1 {
    2 .host = "..."; # IP or hostname
    3 .host_header = "example.com";
    4 .always_use_host_header = true;
    5 ...
    6}
  2. Activate をクリックして設定への変更をデプロイします。

グローバルにホストをオーバーライドする

注意

バックエンドが1つしかない場合は、グローバルオーバーライドを使用します。グローバルオーバーライドを使用する場合は、以下の注意事項をすべてお読みください

サービスに配信するドメインが複数あり、それらがすべて同じアセット (assets1.example.comassets2.example.com など) で、それらを正規化したい場合 (例: assets.example.com)、Host をグローバルにオーバーライドすることができます。以下の手順でグローバルにホストをオーバーライドすることができます。

  1. Fastly コントロールパネルにログインします。
  2. Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインによる検索が行えます。
  3. Edit configuration をクリックし、アクティブなバージョンをクローンするオプションを選択します。
  4. Settings をクリックします。
  5. Override host スイッチをクリックします。

    オーバーライドホストの設定

  6. Override host header フィールドに、使用しているオリジンに応じてオーバーライドホストのホスト名を入力します。

    • Amazon S3 をオリジンとして使用する場合、<yourbucket>.s3.amazonaws.com と入力します。
    • Google Cloud Storage をオリジンとして使用する場合、<your bucket name>.storage.googleapis.com と入力します。
  7. Save をクリックします。新しいオーバーライドホストヘッダーが Override host セクションに表示されます。

  8. Activate をクリックして設定への変更をデプロイします。

グローバルオーバーライドホストの使用に関する注意事項

以下の場合、オーバーライドホストの使用をお勧めしません。

  • TLS の使用を強制し、HSTS を有効にする場合。 TLS の使用を強制し、HSTS が有効化されている状態でオーバーライドホストの設定を有効にすると、問題が発生する可能性があります。この設定を有効にする代わりに、新しいリクエスト設定を作成し、詳細オプションでオーバーライドホストを指定することをお勧めします。

  • 複数のオリジンを使用する場合。 Host のオーバーライドを指定する際、オリジンに実際に送信されるホスト名が指定されます。2つの異なるオリジンを使用するサービスで、各オリジンが異なるホスト名を必要とする場合、すべてのリクエストに対して同一の Host のオーバーライドを指定すると、一方のオリジンが有効なレスポンスを返さなくなります。複数のオリジンのうち1つだけに一致するデフォルトのホスト名を指定した場合、他のオリジンへのリクエストに対してコンテンツが返されません。

    注意

    複数のバックエンドからコンテンツを提供する場合は、条件を設定してバックエンドにルーティングする必要があります。詳細については、URL パスベースのルーティングに関するガイドをご覧ください。

  • オリジンシールドが有効化されている場合。 オリジンシールドとホストのオーバーライドを有効にし、指定されたオーバーライドホストがサービス内のドメインに一致しない場合、オリジンシールドはリクエストを適切にルーティングせず、500エラーが返されます。詳しくは、オリジンシールドをご参照ください。

    注意

    Fastly を通じて提供されるお客様のサービスとオリジンの動作に矛盾がないよう、Fastly は vcl_hash 関数のホストヘッダーの値をすべて小文字に正規化します。これにより、リクエスト内でお客様のサイトのドメイン名に大文字が使用されていても、ハッシュ関数は予測通りの動作をすることになります。ただし、これ以外の部分の URL には適用されずに、大文字と小文字が区別されます。


翻訳についての注意事項
このガイドは役に立ちましたか?

このフォームを使用して機密性の高い情報を送信しないでください。サポートが必要な場合は、サポートチームまでご連絡ください。このフォームは reCAPTCHA によって保護されており、Google のプライバシーポリシー利用規約が適用されます。