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

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

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

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

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

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

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

  1. Fastly コントロールパネルにログインします。
  2. All services ページから、該当するサービスを選択します。検索ボックスを使用して ID、名前、またはドメインで検索することができます。
  3. Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
  4. Origins をクリックします。Origins ページが表示されます。
  5. Hosts のセクションで、編集するホストの隣にある鉛筆アイコンをクリックします。Edit this Host ページが表示されます。
  6. Edit this Host ページの下部にある Advanced options をクリックします。
  7. Override host フィールドに、使用しているオリジンに基づいてオーバーライド Host ヘッダーのホスト名を入力します。このフィールドの値は、グローバルなオーバーライドホスト設定よりも優先されます。例:

    • オリジンに Amazon S3 を使用する場合、<yourbucket>.s3.amazonaws.com と入力します。
    • オリジンに Google Cloud Storage を使用する場合、<your bucket name>.storage.googleapis.com と入力します。
  8. Update ボタンをクリックします。新しいオーバーライドホストは、Override host セクションの Show all details フィールドの下に表示され、VCL で以下のようなコードブロックがオリジンの設定に追加されます。

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

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

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

  1. Fastly コントロールパネルにログインします。
  2. All services ページから、該当するサービスを選択します。検索ボックスを使用して ID、名前、またはドメインで検索することができます。
  3. Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
  4. Settings をクリックします。Settings ページが表示されます。
  5. Override host スイッチをクリックします。Override host header フィールドが表示されます。

    Setting Override host

  6. Override host header フィールドに、使用しているオリジンに応じてオーバーライドホストのホスト名を入力します。
    • Amazon S3 をオリジンとして使用する場合、<yourbucket>.s3.amazonaws.com と入力します。
    • Google Cloud Storage をオリジンとして使用する場合、<your bucket name>.storage.googleapis.com と入力します。
  7. Save をクリックします。新しいオーバーライドホストヘッダーがオーバーライドホスト のセクションに表示されます。
  8. Activate ボタンをクリックして設定変更をデプロイします。

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

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

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

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

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

Back to Top