HTTP502-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.

HTTP502-Statuscode (Bad Gateway)

CloudFrontgibt einen HTTP 502-Statuscode (Bad Gateway) zurück, wenn das angeforderte Objekt CloudFront nicht bedient werden konnte, weil keine Verbindung zum Ursprungsserver hergestellt werden 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 CloudFront verhindert, dass eine Verbindung zum Ursprung hergestellt werden kann.

SSL/Fehler bei der 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. DasSSL/TLS-Zertifikat für Ihren Ursprung muss einen Domainnamen enthalten, der entweder mit der Ursprungsdomain, die Sie für den CloudFront Vertrieb angegeben haben, oder mit dem Host Header der Ursprungsanfrage übereinstimmt.

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

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

  • Besorgen Sie sich ein neues SSL TLS /-Zertifikat, das die entsprechenden Domainnamen enthält.

    Wenn Sie AWS Certificate Manager (ACM) verwenden, finden Sie im AWS Certificate Manager Benutzerhandbuch unter Anfordern eines öffentlichen Zertifikats Informationen zum Anfordern eines neuen Zertifikats.

  • Ändern Sie die Distributionskonfiguration, sodass nicht CloudFront mehr versucht wirdSSL, eine Verbindung mit Ihrem Ursprungsserver herzustellen.

SSLOnline-Checker

Um ein SSL Testtool zu finden, suchen Sie im Internet nach „Online-SSL-Checker“. In der Regel geben Sie den Namen Ihrer Domain an, und das Tool gibt eine Vielzahl von Informationen über Ihr SSL TLS /-Zertifikat zurück. Vergewissern Sie sich, dass das Zertifikat Ihren Domänennamen aus den Feldern Allgemeiner Name oder Alternative Antragstellernamen enthält.

Öffnen SSL

Um bei der Behebung HTTP von 502-Fehlern von SSL zu helfen CloudFront, können Sie mit Open 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 Open SSL eine Verbindung herstellen kann, gibt es Informationen über das Zertifikat des Ursprungsservers zurück, einschließlich des allgemeinen Namens des Zertifikats (Subject CNFeld) und des alternativen Antragstellers (Subject Alternative NameFeld).

Verwenden Sie den folgenden SSL Open-Befehl, um die Verbindung zu Ihrem Ursprungsserver zu testen (ersetzen Sie origin domain mit dem Domainnamen Ihres Ursprungsservers, z. B. example.com):

openssl s_client -connect origin domain name:443

Wenn Folgendes zutrifft:

  • Ihr Ursprungsserver unterstützt mehrere Domainnamen mit mehreren SSL TLS /-Zertifikaten

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

Fügen Sie dann, wie im folgenden Beispiel, die -servername Option zum SSL Befehl Öffnen hinzu (ersetzen CNAME mit demCNAME, 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 CloudFront und dem Ursprung Wenn Ihr Origin nicht mit einer dieser Chiffren oder Protokolle in der SSL TLS /-Exchange antwortet, CloudFront schlägt die Verbindung fehl. Mithilfe eines Online-Tools wie Labs können Sie überprüfen, ob Ihr Absender die Chiffren und Protokolle unterstützt. SSL 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 CloudFront und dem Ursprung.

SSL/Das TLS Ursprungszertifikat ist abgelaufen, ungültig, selbstsigniert oder die Zertifikatskette hat die falsche Reihenfolge

Wenn der Ursprungsserver Folgendes zurückgibt, CloudFront bricht er die TCP Verbindung ab, gibt HTTP den Statuscode 502 (Bad Gateway) zurück und setzt den X-Cache Header aufError 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, CloudFront wird die TCP Verbindung unterbrochen.

Hinweise zur Installation einesSSL/TLS-Zertifikats auf Ihrem benutzerdefinierten Ursprungsserver finden Sie unterErfordern 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 auf Ihrer CloudFront Distribution einen Ursprung erstellen, können Sie die Ports festlegen, die eine CloudFront Verbindung zum Ursprung herstellen, und zwar mit für HTTP und HTTPS Traffic. Standardmäßig sind dies TCP 80/443. Sie haben die Möglichkeit, diese Ports zu ändern. Wenn Ihr Origin aus irgendeinem Grund den Verkehr auf diesen Ports ablehnt oder wenn Ihr Backend-Server nicht auf die Ports reagiert, kann keine Verbindung hergestellt CloudFront 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 VPCAmazon-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 ein HTTP 502-Statuscode darauf hinweisen, dass Ihre Lambda-Funktionsantwort falsch formatiert war 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.

DNSFehler (NonS3OriginDnsError)

Ein HTTP 502-Fehler mit dem NonS3OriginDnsError Fehlercode weist darauf hin, dass ein DNS Konfigurationsproblem vorliegt, 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 Origins 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 Lö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. Um dieses Problem zu beheben, wenden Sie sich an Ihren DNS Anbieter oder, falls Sie Amazon Route 53 verwenden, finden Sie weitere Informationen unter Warum kann ich nicht auf meine Website zugreifen, die Route DNS 53-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 public im Internet DNS auf. Daher ist es wichtig, die Fehlerbehebung in einem ähnlichen Kontext durchzuführen.

Wenn es sich bei Ihrem Ursprung um eine Subdomain handelt, deren DNS Autorität an einen anderen Nameserver als die Stammdomain delegiert wurde, stellen Sie sicher, dass die Einträge für den Nameserver (NS) und den Autoritätsstart (SOA) korrekt für die Subdomain konfiguriert sind. Sie können mit Befehlen, die den vorherigen Beispielen ähneln, nach diesen Datensätzen suchen.

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

Application Load Balancer Balancer-Ursprungsfehler 502

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

APIGateway-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? .