Wie behebe ich 504-Fehler in CloudFront?
Ich verwende eine Amazon-CloudFront-Verteilung, um Inhalte bereitzustellen. Zuschauer erhalten jedoch einen 504-Fehler, wenn sie versuchen, über einen Webbrowser auf den Inhalt zuzugreifen. Wie kann ich diese Fehler beheben?
Kurzbeschreibung
CloudFront gibt zwei Arten von 504-Fehlern zurück:
- 504: „Gateway Timeout“-Fehler treten auf, wenn der Fehler vom Ursprung zurückgegeben und dann über CloudFront an den Viewer weitergegeben wird.
- 504: „Die Anfrage konnte nicht erfüllt werden“-Fehler treten auf, wenn der Ursprung im zugewiesenen Zeitraum nicht auf CloudFront geantwortet hat und die Anfrage daher abgelaufen ist.
Basierend auf dem Fehler, den Sie erhalten, finden Sie weitere Informationen im entsprechenden Lösungsabschnitt.
Auflösung
504: „Gateway-Timeout“-Fehler
Stellen Sie sicher, dass die richtigen Ports in Ihrer Sicherheitsgruppe geöffnet sind.
Stellen Sie sicher, dass der Ursprungsserver eingehenden Datenverkehr von CloudFront zulässt, in der Regel auf Port 443 oder 80.
Wenn Ihr Ursprung Elastic Load Balancing verwendet, überprüfen Sie die ELB-Sicherheitsgruppen. Stellen Sie sicher, dass die Sicherheitsgruppen eingehenden Datenverkehr von CloudFront zulassen.
Stellen Sie sicher, dass die Firewall des Ursprungsservers Verbindungen von CloudFront zulässt
Vergewissern Sie sich je nach Betriebssystem, dass die Firewall Datenverkehr für Port 443 und 80 zulässt.
Wenn Sie Redhat Linux View verwenden, stellen Sie sicher, dass Ihre Firewall-Regeln mit den folgenden Einstellungen übereinstimmen.
Firewall-Regeln:
$ sudo firewall-cmd --permanent --zone=public --list-ports
Regeln dauerhaft hinzufügen:
$ sudo firewall-cmd --permanent --zone=public --add-port=80/tcp $ sudo firewall-cmd --permanent --zone=public --add-port=443/tcp
Wenn Sie Ubuntu Linux verwenden, stellen Sie sicher, dass Ihre Firewall-Regeln mit den folgenden Einstellungen übereinstimmen.
Firewall-Regeln zu Ubuntu Linux anzeigen:
$ sudo ufw status verbose
Regeln dauerhaft hinzufügen:
$ sudo ufw allow 80 $ sudo ufw allow 443
Wenn Sie die Windows-Firewall auf einem Windows-Server verwenden, finden Sie in der Microsoft-Dokumentation weitere Informationen unter Hinzufügen oder Bearbeiten der Firewall-Regel.
Stellen Sie sicher, dass Ihr benutzerdefinierter Server über das Internet zugänglich ist
Wenn CloudFront nicht über das Internet auf Ihren Ursprung zugreifen kann, gibt CloudFront einen 504-Fehler zurück. Stellen Sie sicher, dass Ihre HTTP- und HTTPS-Regeln den folgenden Einstellungen entsprechen, um zu überprüfen, ob der Internetverkehr eine Verbindung zu Ihrem Ursprung herstellen kann.
Für HTTPS-Verkehr:
nc -zv OriginDomainName/IP_Address 443 telnet OriginDomainName/IP_Address 443
Für HTTP-Verkehr:
nc -zv OriginDomainName 80 telnet OriginDomainName 80
504: „Die Anfrage konnte nicht erfüllt werden“-Fehler
Messen Sie die typische Latenz und Hochlast-Latenz Ihrer Webanwendung
Verwenden Sie den folgenden Befehl, um die Reaktionsfähigkeit Ihrer Webanwendung zu messen:
curl -w "DNS Lookup Time: %{time_namelookup} \nConnect time: %{time_connect} \nTLS Setup: %{time_appconnect} \nRedirect Time: %{time_redirect} \nTime to first byte: %{time_starttransfer} \nTotal time: %{time_total} \n" -o /dev/null https://www.example.com/yourobject
Hinweis: Geben Sie für https://www.example.com/yourobject die URL der Webanwendung ein, die Sie testen.
Die Ausgabe sieht ähnlich aus wie die folgende:
DNS Lookup Time: 0.212319 Connect time: 0.371254 TLS Setup: 0.544175 Redirect Time: 0.000000 Time to first byte: 0.703863 Total time: 0.703994
Beheben Sie je nach Speicherort der Anforderung eine Problembehandlung bei dem Schritt, der eine hohe Latenz aufweist.
Ressourcen hinzufügen oder Server und Datenbanken optimieren
Stellen Sie sicher, dass Ihr Server über genügend CPU, Arbeitsspeicher und Festplattenspeicher verfügt, um Viewer-Anfragen zu bearbeiten.
Richten Sie persistente Verbindungen auf Ihrem Backend-Server ein. Diese Verbindungen tragen zur Latenz bei, wenn Verbindungen für nachfolgende Anforderungen wiederhergestellt werden müssen.
Passen Sie den CloudFront-Timeout-Wert an
Wenn die vorherigen Schritte zur Fehlerbehebung die HTTP 504-Fehler nicht behoben haben, aktualisieren Sie die Zeit, die in Ihrer Verteilung für den Timeout der Ursprungsantwort angegeben ist.
Relevante Informationen
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor einem Monat