Direkt zum Inhalt

Wie konfiguriere ich CloudFront so, dass der Host-Header an den Ursprung weitergeleitet wird?

Lesedauer: 3 Minute
0

Der Ursprung, der in meiner Amazon CloudFront-Distribution konfiguriert ist, verwendet virtuelles Hosting. Ich möchte meine Distribution so konfigurieren, dass sie den Host-Header an meinen Ursprungsserver weiterleitet.

Kurzbeschreibung

Um Ihre Distribution so zu konfigurieren, dass sie den Host-Header an den Ursprung weiterleitet, führen Sie eine der folgenden Aktionen aus:

  • Erstellen Sie eine Cache-Richtlinie und eine Richtlinie für Ursprungsanfragen.
  • Bearbeite die Einstellungen eines vorhandenen Verhaltens in der Distribution.

Wenn du eine benutzerdefinierte Richtlinie für Amazon API Gateway-Ursprünge ohne eine benutzerdefinierte Domain erstellst, leite den Host-Header nicht weiter. Andernfalls erhältst du "403 error".

Wichtig: Für Amazon Simple Storage Service (Amazon S3)-Ursprünge werden Caches, die auf dem Host-Header basieren, von CloudFront nicht unterstützt. Weitere Informationen findest du unter Auswahl der Header, auf denen das Caching basieren soll.

Lösung

Erstellen einer Cache-Richtlinie und einer Richtlinie für Ursprungsanfragen

Führe die folgenden Schritte aus:

  1. Öffne die CloudFront-Konsole.
  2. Wähle im Navigationsbereich Richtlinien.
  3. Wähle im Abschnitt Benutzerdefinierte Richtlinien die Option Cache-Richtlinie erstellen.
  4. Wähle unter Schlüsseleinstellungen im Cache speichern für Header die Option Folgende Header einbeziehen.
  5. Wähle in der Drop-down-Liste Header hinzufügen die Option Host.
  6. Vervollständige alle anderen Einstellungen der Cache-Richtlinie gemäß den Anforderungen.
  7. Wähle Erstellen.
  8. Hänge die Richtlinie an das entsprechende Verhalten der CloudFront-Distribution an.

Die Einstellungen eines vorhandenen Verhaltens in der Distribution bearbeiten

Führe die folgenden Schritte aus:

  1. Öffne die CloudFront-Konsole.
  2. Wähle die Distribution aus.
  3. Wähle die Registerkarte Verhalten und dann den Pfad, an den der Host-Header weitergeleitet werden soll.
  4. Wähle Bearbeiten.
  5. Vergewissere dich, dass Cache-Schlüssel und Ursprungsanfragen auf Legacy-Cache-Einstellungen gesetzt sind.
    Hinweis: Wenn die Legacy-Cache-Einstellungen nicht ausgewählt sind, führe die Schritte im vorherigen Abschnitt aus, um eine Cache-Richtlinie zu erstellen.
  6. Wähle unter Legacy-Cache-Einstellungen für Header die Option Folgende Header einbeziehen.
  7. Wähle im Menü Header hinzufügen die Option Host.
  8. Klicke auf Änderungen speichern.

(Optional) Den Header unter einem anderen Namen weiterleiten

Verwende eine CloudFront-Funktion oder eine AWS Lambda @Edge-Funktion, um den Host-Header-Wert unter einem benutzerdefinierten oder anderen Header-Namen weiterzuleiten.

Gehe wie folgt vor, um den Header unter einem anderen Namen weiterzuleiten:

  1. Überprüfe den eingehenden Host-Header.
    Hinweis: Überprüfe für CloudFront-Funktionen das Ereignis Viewer-Anfrage. Überprüfen für Lambda @Edge das Ereignis „Betrachtungs- und Ursprungsanfrage“.
  2. Um den Host-Header-Wert von einer Client-Anfrage an den Header zu speichern, verwende den Befehl function handler von Lambda in der Viewer-Anfrage.
    Hinweis: Wenn der eingehende Host-Header beispielsweise Host ist, füge einen neuen Header hinzu, der denselben Wert hat. Sieh dir das folgende Code-Beispiel an:
    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
    }
    Hinweis: Diese Beispielfunktion aktiviert ein Ereignis „Viewer-Anfrage“. 
  3. Um den benutzerdefinierten Header an den Ursprung weiterzuleiten, konfiguriere die Cache- oder Hostanfragesrichtlinie so, dass der X-Forwarded-Host-Header zugelassen wird. Weitere Informationen findest du unter Anfrage- und Antwortverhalten für benutzerdefinierte Ursprünge.

Ähnliche Informationen

Inhalte auf der Grundlage von Anfrage-Headern zwischenspeichern

Den Cache-Schlüssel mit einer Richtlinie kontrollieren