スキップしてコンテンツを表示

CloudFront でホストヘッダーをオリジンに転送する設定を行う方法を教えてください。

所要時間1分
0

Amazon CloudFront ディストリビューションで設定したオリジンは、仮想ホスティングを使用しています。このディストリビューションにおいて、ホストヘッダーをオリジンサーバーに転送する設定を行いたいです。

簡単な説明

ホストヘッダーをオリジンに転送するようにディストリビューションを設定するには、次のいずれかの操作を行います:

  • キャッシュポリシーとオリジンリクエストポリシーを作成してください。
  • ディストリビューション内の既存の動作設定を編集します。

カスタムドメインを使用せずに Amazon API Gateway のカスタムポリシーを作成する場合は、ホストヘッダーを転送しないでください。転送した場合、"403 error" が発生します。

**重要:**Amazon Simple Storage Service (Amazon S3) オリジンでは、CloudFront はホストヘッダーに基づくキャッシュをサポートしません。詳細については、「キャッシュの基盤となるヘッダーを選択する」を参照してください。

解決策

キャッシュポリシーとオリジンリクエストポリシーを作成する

次の手順を実行します。

  1. CloudFront コンソールを開きます。
  2. ナビゲーションペインで [ポリシー] を選択します。
  3. [カスタムポリシー] セクションで [キャッシュポリシーの作成] を選択します。
  4. [キャッシュキー設定][ヘッダー][次のヘッダーを含める] を選択します。
  5. [ヘッダーを追加] ドロップダウンリストから [ホスト] を選択します。
  6. 要件に応じて、その他のキャッシュポリシー設定を完了します。
  7. [作成] を選択します。
  8. ポリシーを CloudFront ディストリビューション内の関連する動作にアタッチします

ディストリビューション内の既存動作の設定を編集します。

次の手順を実行します。

  1. CloudFront コンソールを開きます。
  2. 目的のディストリビューションを選択します。
  3. [動作] タブを選択し、ホストヘッダーの転送先となるパスを選択します。
  4. [編集] を選択します。
  5. [キャッシュキーとオリジンリクエスト][レガシーキャッシュ設定] に設定されていることを確認します。
    注: [レガシーキャッシュ設定] が選択されていない場合は、前のセクションの手順を実行してキャッシュポリシーを作成します。
  6. [レガシーキャッシュ設定][ヘッダー][次のヘッダーを含める] を選択します。
  7. [ヘッダーの追加] メニューから [ホスト] を選択します。
  8. [変更を保存] を選択します。

(オプション) ヘッダーを別の名前で転送する

ホストヘッダー値をカスタムまたは別のヘッダー名で転送する場合は、CloudFront 関数または AWS Lambda@Edge 関数を使用します。

ヘッダーを別の名前で転送するには、次の手順を実行します。

  1. 受信ホストヘッダーを確認します。
    注: CloudFront 関数を使用する場合は、ビューワーリクエストイベントを確認します。Lambda@Edge を使用する場合は、ビューまたはオリジンリクエストイベントを確認します。
  2. クライアントリクエストのホストヘッダー値をヘッダーに保存するには、ビューアーリクエストで Lambda の関数ハンドラーコマンドを使用します。
    注: たとえば、受信ホストヘッダーが host の場合は、同じ値を持つヘッダーを新たに追加します。次のコード例を参照してください。
    function handler(event) {    const request = event.request;
        const headers = request.headers;
        const host = request.headers.host.value;
        headers['x-forwarded-host'] = { "value": host }
        return request
    }
    注: この関数例では、ビューワーリクエストイベントが有効化されます。
  3. カスタムヘッダーをオリジンに転送するには、キャッシュまたはホストのリクエストポリシーで設定を行い、X-Forwarded-Host ヘッダーを許可リストに追加します。詳細については、「カスタムオリジンでのリクエストと応答の動作」を参照してください。

関連情報

リクエストヘッダーに基づきコンテンツをキャッシュする

ポリシーでキャッシュキーを制御する

コメントはありません

関連するコンテンツ