HTTP 502-Statuscode (Bad Gateway) - Amazon CloudFront

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

HTTP 502-Statuscode (Bad Gateway)

CloudFront gibt einen HTTP 502-Statuscode (Bad Gateway) zurück, wenn das angeforderte Objekt CloudFront nicht bedient werden konnte, weil es keine Verbindung zum Ursprungsserver herstellen konnte.

Wenn Sie Lambda @Edge verwenden, ist das Problem möglicherweise ein Lambda-Validierungsfehler. Wenn Sie einen HTTP 502-Fehler mit dem NonS3OriginDnsError Fehlercode erhalten, liegt wahrscheinlich ein DNS-Konfigurationsproblem vor, das die Verbindung zum Ursprung CloudFront verhindert.

Fehler bei der SSL/TLS-Aushandlung zwischen CloudFront und einem benutzerdefinierten Ursprungsserver

Wenn Sie einen benutzerdefinierten Ursprung verwenden, der HTTPS zwischen CloudFront und Ihrem Ursprung erfordert, können nicht übereinstimmende Domainnamen zu Fehlern führen. Das SSL/TLS-Zertifikat für Ihren Ursprung muss einen Domainnamen enthalten, der entweder mit der Ursprungsdomain übereinstimmt, die Sie für die CloudFront Verteilung angegeben haben, oder mit dem Host Header der Ursprungsanfrage.

Wenn die Domainnamen nicht übereinstimmen, schlägt der SSL/TLS-Handshake fehl und CloudFront gibt den HTTP-Statuscode 502 (Bad Gateway) zurück und setzt den Header auf. X-Cache Error from cloudfront

Um festzustellen, ob die Domainnamen im Zertifikat mit der Ursprungsdomain in der Distribution oder im Host Header übereinstimmen, können Sie einen Online-SSL-Checker oder OpenSSL verwenden. Wenn die Domain-Namen nicht übereinstimmen, haben Sie zwei Optionen:

Online-SSL-Prüfung

Sie finden ein Test-Tool für SSL-Verbindungen, indem Sie im Internet nach den Begriffen "online ssl checker" suchen. In der Regel müssen Sie den Namen Ihrer Domain eingeben, und das Tool gibt eine Vielzahl von Informationen zu Ihrem SSL-/TLS-Zertifikat aus. Vergewissern Sie sich, dass das Zertifikat Ihren Domänennamen aus den Feldern Allgemeiner Name oder Alternative Antragstellernamen enthält.

OpenSSL

Um bei der Behebung von HTTP 502-Fehlern von zu helfen CloudFront, können Sie mit OpenSSL versuchen, eine SSL/TLS connection to your origin server. If OpenSSL is not able to make a connection, that can indicate a problem with your origin server's SSL/TLS Konfiguration vorzunehmen. Wenn OpenSSL eine Verbindung herstellen kann, gibt es Informationen über das Zertifikat des Ursprungsservers zurück, einschließlich des allgemeinen Namens (Feld Subject CN) des Zertifikats und des alternativen Antragstellernamens (Feld Subject Alternative Name).

Verwenden Sie den folgenden OpenSSL-Befehl, um die Verbindung zu Ihrem Ursprungsserver zu testen (origin domainersetzen Sie ihn durch den Domainnamen Ihres Ursprungsservers, z. B. example.com):

openssl s_client -connect origin domain name:443

Wenn Folgendes zutrifft:

  • Ihr Ursprungsserver unterstützt mehrere Domänennamen mit mehreren SSL/TLS-Zertifikaten.

  • Ihre Verteilung ist so konfiguriert, dass der Host-Header an den Ursprung weitergeleitet wird.

Fügen Sie dann die -servername Option wie im folgenden Beispiel zum OpenSSL-Befehl hinzu (CNAMEersetzen Sie sie durch den CNAME, der in Ihrer Distribution konfiguriert ist):

openssl s_client -connect origin domain name:443 -servername CNAME

Ursprungsserver ist über die unterstützten Verschlüsselungsverfahren/Protokolle nicht erreichbar

CloudFront stellt mithilfe von Chiffren und Protokollen eine Verbindung zu Originalservern her. Eine Liste der Verschlüsselungen und Protokolle, die unterstützt werden, CloudFront finden Sie unter. Unterstützte Protokolle und Chiffren zwischen und dem Ursprung CloudFront Wenn Ihr Absender nicht mit einer dieser Chiffren oder Protokolle im SSL/TLS-Austausch antwortet, schlägt die Verbindung fehl. CloudFront Sie können überprüfen, ob Ihr Ursprungsserver diese Verschlüsselungsverfahren und Protokolle unterstützt, indem Sie ein Online-Tool wie SSL-Labs verwenden. Geben Sie den Domain-Namen Ihres Ursprungs-Servers in das Feld Hostname ein und wählen Sie anschließend OK aus. Überprüfen Sie die Felder Common names (Allgemeine Namen) und Alternative names (Alternative Namen) in dem Test; entspricht ihr Inhalt dem Domain-Namen Ihres Ursprungs-Servers? Nachdem der Test beendet ist, suchen Sie die Abschnitte Protocols und Cipher Suites in den Testergebnissen; welche Verschlüsselungsverfahren oder Protokolle werden von Ihrem Ursprungs-Server unterstützt? Vergleichen Sie die Produkte mit der Liste von Unterstützte Protokolle und Chiffren zwischen und dem Ursprung CloudFront .

SSL-/TLS-Zertifikat auf dem Ursprungsserver ist abgelaufen, ungültig oder selbstsigniert oder die Zertifikatkette weist die falsche Reihenfolge auf

Wenn der Ursprungsserver Folgendes zurückgibt, CloudFront bricht er die TCP-Verbindung ab, gibt den HTTP-Statuscode 502 (Bad Gateway) zurück und setzt den Header auf: X-Cache Error from cloudfront

  • Abgelaufenes Zertifikat

  • Ungültiges Zertifikat

  • Selbstsigniertes Zertifikat

  • Zertifikatkette in der falschen Reihenfolge

Anmerkung

Wenn die gesamte Zertifikatskette, einschließlich des Zwischenzertifikats, nicht vorhanden ist, wird CloudFront die TCP-Verbindung unterbrochen.

Informationen zum Installieren eines SSL-/TLS-Zertifikat auf Ihrem benutzerdefinierten Ursprungsserver finden Sie unter Erfordern Sie HTTPS für die Kommunikation zwischen CloudFront und Ihrem benutzerdefinierten Ursprung.

Ursprungsserver ist über die eingestellten Ports in den Ursprungseinstellungen nicht erreichbar

Wenn Sie in Ihrer CloudFront Distribution einen Ursprung erstellen, können Sie die Ports festlegen, über die eine CloudFront Verbindung zum Ursprung für HTTP- und HTTPS-Verkehr hergestellt wird. Standardmäßig sind das die TCP-Ports 80 und 443. Sie haben die Möglichkeit, diese Ports zu ändern. Wenn Ihr Absender den Datenverkehr auf diesen Ports aus irgendeinem Grund ablehnt oder wenn Ihr Backend-Server nicht auf die Ports reagiert, kann keine Verbindung CloudFront hergestellt werden.

Sie können diese Probleme zu beheben, indem Sie alle Firewalls überprüfen, die in Ihrer Infrastruktur ausgeführt werden, und sich vergewissern, dass sie die unterstützten IP-Bereiche nicht blockieren. Weitere Informationen finden Sie unter AWS IP-Adressbereiche im Amazon VPC-Benutzerhandbuch. Überprüfen Sie außerdem, ob Ihr Webserver auf dem Ursprungsserver ausgeführt wird.

Fehler bei der Lambda-Validierung

Wenn Sie Lambda@Edge verwenden, kann der HTTP-Statuscode 502 anzeigen, dass Ihre Lambda-Funktionsantwort falsch gebildet wurde oder ungültigen Inhalt enthielt. Weitere Informationen zur Behebung von Lambda@Edge-Fehlern finden Sie unter Testen und Debuggen von Lambda @Edge -Funktionen.

CloudFront Fehler bei der Funktionsvalidierung

Wenn Sie CloudFront Funktionen verwenden, kann ein HTTP-502-Statuscode darauf hinweisen, dass die CloudFront Funktion versucht, einen schreibgeschützten Header hinzuzufügen, zu löschen oder zu ändern. Dieser Fehler tritt beim Testen nicht auf, sondern tritt auf, nachdem Sie die Funktion bereitgestellt und die Anforderung ausgeführt haben. Um diesen Fehler zu beheben, überprüfen und aktualisieren Sie Ihre CloudFront Funktion. Weitere Informationen finden Sie unter Funktionen aktualisieren.

DNS-Fehler (NonS3OriginDnsError)

Ein HTTP 502-Fehler mit dem NonS3OriginDnsError Fehlercode weist auf ein DNS-Konfigurationsproblem hin, das CloudFront verhindert, dass eine Verbindung zum Ursprung hergestellt werden kann. Wenn Sie diesen Fehler von erhalten CloudFront, stellen Sie sicher, dass die DNS-Konfiguration des Ursprungs korrekt ist und funktioniert.

Wenn es eine Anfrage für ein Objekt CloudFront erhält, das abgelaufen ist oder sich nicht in seinem Cache befindet, sendet es eine Anfrage an den Ursprung, um das Objekt abzurufen. Um eine erfolgreiche Anfrage an den Ursprung zu stellen, CloudFront führt eine DNS-Auflösung in der Ursprungsdomäne durch. Wenn beim DNS-Dienst für Ihre Domain Probleme auftreten, CloudFront kann der Domainname nicht aufgelöst werden, um die IP-Adresse abzurufen, was zu einem HTTP 502-Fehler (NonS3OriginDnsError) führt. Sie können dieses Problem beheben, indem Sie sich an Ihren DNS-Anbieter wenden. Wenn Sie Amazon Route 53 verwenden, finden Sie weitere Informationen unter Warum kann ich nicht auf meine Website zugreifen, die Route-53-DNS-Services verwendet?

Sie können dieses Problem weiterhin beheben, indem Sie sicherstellen, dass die autoritativen Name-Server für die Stamm-Domäne bzw. den Zone Apex (z. B. example.com) Ihres Ursprungs-Servers richtig funktionieren. Sie können die folgenden Befehle verwenden, um die Nameserver für Ihren Ursprungsserver-Apex zu finden, zum Beispiel mit einem Tool wie dig oder nslookup:

dig OriginAPEXDomainName NS +short
nslookup -query=NS OriginAPEXDomainName

Wenn Sie die Namen Ihrer Name-Server erhalten haben, verwenden Sie die folgenden Befehle, um den Domain-Namen Ihres Ursprungsservers von ihnen abzufragen; so können Sie sicherstellen, dass alle eine Antwort zurückgeben:

dig OriginDomainName @NameServer
nslookup OriginDomainName NameServer
Wichtig

Stellen Sie sicher, dass Sie diese DNS-Fehlerbehebung auf einem Computer durchführen, der mit dem öffentlichen Internet verbunden ist. CloudFront löst die Ursprungsdomäne mithilfe von öffentlichem DNS im Internet auf. Daher ist es wichtig, die Fehlerbehebung in einem ähnlichen Kontext durchzuführen.

Wenn der Ursprung eine Subdomäne ist, deren DNS-Berechtigung an einen anderen Nameserver als die Stammdomäne delegiert ist, stellen Sie sicher, dass die Datensätze für den Nameserver (NS) und Autoritätsursprung (SOA) für die Subdomäne korrekt konfiguriert sind. Sie können mit Befehlen, die den vorherigen Beispielen ähneln, nach diesen Datensätzen suchen.

Weitere Informationen zu DNS finden Sie unter DNS-Konzepte (Domain Name System) in der Dokumentation zu Amazon Route 53.

Origin 502 Application Load Balancer Balancer-Fehlers

Wenn Sie Application Load Balancer als Quelle verwenden und einen 502-Fehler erhalten, finden Sie weitere Informationen unter Wie behebe ich Application Load Balancer Balancer-HTTP 502-Fehler? .

API-Gateway-Origin-502-Fehler

Wenn Sie API Gateway verwenden und einen 502-Fehler erhalten, finden Sie weitere Informationen unter Wie behebe ich HTTP 502-Fehler von API Gateway REST APIs mit Lambda-Proxyintegration? .