Sammeln von Informationen zur Fehlerbehebung bei Website-Problemen
Übersicht
Es ist wichtig, zur Diagnose eines Problems so viele Informationen wie möglich zu sammeln und dem Cloudflare-Support angemessene Details zu liefern. In diesem Artikel wird erklärt, wie Sie Informationen zur Fehlerbehebung sammeln, die vom Cloudflare-Support häufig verlangt werden.
Erstellen einer HAR-Datei
In einem HTTP-Archiv (HAR) werden alle Web-Browser-Anfragen gespeichert, einschließlich der Anfrage- und Antwort-Header, des Inhalts und der Seitenladedauer.
Gegenwärtig können nur Chrome und Firefox standardmäßig auf das HAR-Feature zugreifen. Andere Browser erfordern entweder eine Erweiterung oder können keine HAR-Datei erstellen. Befolgen Sie bei der Installation einer Browser-Erweiterung die Anweisungen des Anbieters der Erweiterung.
1. Klicken Sie auf einer Browser-Seite die rechte Maustaste an und wählen Sie Element untersuchen.
2. Die Entwickler-Tools erscheinen entweder unten oder an der linken Seite des Browsers. Klicken Sie die Registerkarte Netzwerk an.
3. Markieren Sie Protokoll erhalten.
4. Klicken Sie auf „Aufzeichnen“.
5. Browsen Sie zu der URL, die Probleme verursacht. Sobald das Problem auftritt, klicken Sie mit der rechten Maustaste auf eines der Elemente in der Registerkarte Netzwerk und wählen Sie Alles als HAR mit Inhalt speichern.
6. Fügen Sie die HAR-Datei an Ihr Support-Ticket an.
1. Wählen Sie aus dem Anwendungsmenü Tools > Web Developer > Netzwerk oder drücken Sie Ctrl+Shift+I (Windows/Linux) bzw. Cmd+Option+I (OS X).
2. Browsen Sie zu der URL, die Probleme verursacht.
3. Nachdem das Problem dupliziert wurde, klicken Sie die rechte Maustaste an und wählen Sie Alles als HAR speichern.
1. Navigieren Sie zu den Entwickler-Tools (verwenden Sie F12 als Tastenkürzel) und wählen Sie die Registerkarte Netzwerk.
2. Browsen Sie zu der URL, die Probleme verursacht.
3. Nachdem das Problem dupliziert wurde, klicken Sie auf Als HAR exportieren und danach auf Speichern unter….
1. Achten Sie darauf, dass in Safari ein Menü Entwickeln oben im Browser-Fenster erscheint. Andernfalls gehen Sie zu Safari > Einstellungen > Erweitert und wählen Sie Entwickeln-Menü in Menüleiste anzeigen.
2. Navigieren Sie zu Entwickeln > Web Inspector anzeigen.
3. Browsen Sie zu der URL, die Probleme verursacht.
4. Halten Sie Strg gedrückt, klicken Sie auf eine Ressource in Web Inspector, und klicken Sie dann auf HAR exportieren.
Identifizieren des Cloudflare-Rechenzentrums für Ihre Anfrage
Eine Karte unserer Rechenzentren wird nach Kontinent sortiert auf der Cloudflare-Statusseite angezeigt. Bei dem Drei-Buchstaben-Code hinter dem Namen des Rechenzentrums handelt es sich um den IATA-Code des nächsten größeren internationalen Flughafens. Um das Cloudflare-Rechenzentrum zu ermitteln, das Anfragen für Ihren Browser verarbeitet, gehen Sie zu:
http://www.example.com/cdn-cgi/trace
Ersetzen Sie www.example.com durch Ihren Domain- und Hostnamen. Beachten Sie das Colo-Feld der Ausgabe.
Fehlerbehebung von Anfragen mit cURL
cURL ist ein Befehlszeilentool zum Senden von HTTP/HTTPS-Anfragen und ist nützlich für die Fehlerbehebung bei:
- HTTP/HTTPS-Performance
- HTTP-Fehlermeldungen
- HTTP-Headern
- APIs
- Vergleich von Server-/Proxyantworten
- SSL-Zertifikaten
Führen Sie den folgenden Befehl aus, um eine Standard-HTTP-GET-Anfrage an Ihre Website zu senden (ersetzen Sie www.example.com durch Ihren Domain- und Hostnamen):
curl -svo /dev/null http://www.example.com/
Bei diesem cURL-Befehlsbeispiel wird eine Ausgabe mit den HTTP-Antwort- und Anfrage-Headern zurückgegeben, jedoch wird die Seitentextausgabe verworfen. Die cURL-Ausgabe bestätigt die HTTP-Antwort und gibt an, ob Cloudflare gegenwärtig Datenverkehr für die Site als Proxy weiterleitet. Die Anwesenheit des CF-RAY-Headers in der Antwort bestätigt, dass die Anfrage über den Cloudflare-Proxy geleitet wurde:
CF-Ray: 5097b5640cad8c56-LAX
Erweitern Sie die nachstehenden Abschnitte für Tipps zur Fehlerbehebung bei HTTP-Fehlern, Performance, Caching und SSL/TLS-Zertifikaten:
Bei der Behebung von HTTP-Fehlern in Antworten von Cloudflare sollten Sie prüfen, ob Ihr Ursprung die Fehler durch direktes Senden von Anfragen an Ihren Ursprungswebserver verursacht hat. Zur Behebung von HTTP-Fehlern sollten Sie eine cURL direkt an die IP-Adresse Ihres Ursprungswebservers senden (unter Umgehung von Cloudflares Proxy):
curl -svo /dev/null --Header "Host: example.com" http://203.0.113.34/
Wenn Sie zum Beispiel bei Datenverkehr, der über den Cloudflare-Proxy weitergeleitet wird, einen HTTP-520-Fehler erhalten, sollten Sie eine cURL zum Ursprungswebserver ausführen, um zu überprüfen, ob leere Antworten gesendet werden:
curl -svo /dev/null --resolve www.example.com:80:203.0.113.34 http://www.example.com/* Added www.example.com:80:203.0.113.34 to DNS cache* Hostname www.example.com was found in DNS cache* Trying 203.0.113.34...* Connected to www.example.com (127.0.0.1) port 80 (#0)> GET / HTTP/1.1> Host: www.example.com> User-Agent: curl/7.43.0> Accept: */*>* Empty reply from server
cURL misst die Latenz oder Performance-Verschlechterung für HTTP/HTTPS-Anfragen über die cURL-Optionen -w oder --write-out. Beim unten stehenden cURL-Beispiel werden mehrere Performance-Vektoren bei der Anfragen-Transaktion gemessen, z. B. Dauer von TLS-Handshakes, DNS-Lookup, Umleitungen, Übertragungen usw.:
curl -svo /dev/null https://example.com/ -w "\nContent Type: %{content_type} \\nHTTP Code: %{http_code} \\nHTTP Connect:%{http_connect} \\nNumber Connects: %{num_connects} \\nNumber Redirects: %{num_redirects} \\nRedirect URL: %{redirect_url} \\nSize Download: %{size_download} \\nSize Upload: %{size_upload} \\nSSL Verify: %{ssl_verify_result} \\nTime Handshake: %{time_appconnect} \\nTime Connect: %{time_connect} \\nName Lookup Time: %{time_namelookup} \\nTime Pretransfer: %{time_pretransfer} \\nTime Redirect: %{time_redirect} \\nTime Start Transfer: %{time_starttransfer} \\nTime Total: %{time_total} \\nEffective URL: %{url_effective}\n" 2>&1
Eine Erklärung zu dieser Timing-Ausgabe finden Sie im Cloudflare-Blog.
cURL hilft, die HTTP-Antwort-Header zu überprüfen, von denen das Zwischenspeichern beeinflusst wird. Insbesondere sollten Sie bei der Behandlung von Problemen mit Cloudflare-Caching mehrere HTTP-Header überprüfen:
- CF-Cache-Status
- Cache-control/Pragma
- Expires
- Last-Modified
- S-Maxage
Überprüfung von Zertifikaten mit cURL
Der folgende cURL-Befehl zeigt das SSL-Zertifikat, das von Cloudflare während einer HTTPS-Anfrage vorgelegt wird (ersetzen Sie www.example.com durch Ihren Domain- und Hostnamen):
curl -svo /dev/null https://www.example.com/ 2>&1 | egrep -v "^{.*$|^}.*$|^\* http.*$"
Überprüfen Sie das Ursprungszertifikat (falls installiert) und ersetzen Sie 203.0.113.34 durch die tatsächliche IP-Adresse Ihres Ursprungswebservers und www.example.com durch Ihren Domain- und Hostnamen:
curl -svo /dev/null --Header "Host: www.example.com" http://203.0.113.34/ 2>&1 | egrep -v "^{.*$|^}.*$|^\* http.*$"
Test von TLS-Versionen
Bei der Behandlung von Problemen des Browser-Supports oder bei der Bestätigung der unterstützten TLS-Versionen können Sie mit cURL eine spezifische TLS-Version testen, indem Sie eine der folgenden Optionen zu Ihrer cURL hinzufügen:
- --tlsv1.0
- --tlsv1.1
- --tlsv1.2
- --tlsv1.3
Vorübergehende Deaktivierung von Cloudflare
Deaktivieren Sie Cloudflare vorübergehend, um Datenverkehr direkt an Ihren Ursprungswebserver anstatt an Cloudflares Reverse-Proxy zu senden. Für gestoppte Domains sind keine Cloudflare-Services wie SSL oder WAF aktiviert. Als Alternative zum globalen Stopp von Cloudflare können die Datensätze, die Datenverkehr in Ihrer Cloudflare-DNS-App empfangen, mit einer grauen Wolke markiert werden.
So deaktivieren Sie Cloudflare vorübergehend:
- Navigieren Sie im Cloudflare Dashboard zur Registerkarte Übersicht.
- Klicken Sie auf Cloudflare auf der Website aussetzen unten rechts auf der Seite unter Erweiterte Aktionen.
Ausführung eines Traceroute
Traceroute ist ein Netzwerk-Diagnosetool, das die Routing-Latenz von Paketen in einem Netzwerk misst. Die meisten Betriebssysteme unterstützen den Traceroute-Befehl. Wenn Sie Konnektivitätsprobleme mit Ihrer über den Cloudflare-Proxy geleiteten Website haben und den Cloudflare-Support um Hilfe bitten, ist es wichtig, dass Sie dabei die Ausgabe einer Traceroute-Ausführung vorlegen.
Nachfolgend finden Sie die Anweisungen zur Ausführung von Traceroute auf verschiedenen Betriebssystemen. Ersetzen Sie in den Beispielen www.example.com durch Ihren Domain- und Hostnamen:
Öffnen Sie das Startmenü.
Klicken Sie auf Ausführen.
Um die Befehlszeilenschnittstelle zu öffnen, geben Sie cmd ein und klicken Sie dann auf OK.
Geben Sie bei der Eingabeaufforderung Folgendes ein:
Für IPv4:> tracert www.example.comFür IPv6:
> tracert -6 www.example.comDrücken Sie auf Enter.
Sie können die Ergebnisse zum Speichern in eine Datei kopieren oder in ein anderes Programm einfügen.
Öffnen Sie ein Terminalfenster.
Geben Sie bei der Eingabeaufforderung Folgendes ein:
Für IPv4:> traceroute www.example.comFür IPv6:
> traceroute -6 www.example.comSie können die Ergebnisse zum Speichern in eine Datei kopieren oder in ein anderes Programm einfügen.
Öffnen Sie die Anwendung Netzwerkdienstprogramm.
Klicken Sie auf die Registerkarte Traceroute.
Geben Sie die Domain- oder IP-Adresse in das entsprechende Eingabefeld ein und klicken Sie auf Trace.
Sie können die Ergebnisse zum Speichern in eine Datei kopieren oder in ein anderes Programm einfügen.
Alternativ können Sie bei Verwendung des Mac-OS-Terminalprogramms auch die oben beschriebenen Traceroute-Anweisungen für Linux befolgen.
Hinzufügen des CF-RAY-Headers zu Ihren Protokollen
Der CF-RAY-Header verfolgt eine Website-Anfrage durch das Cloudflare-Netzwerk. Geben Sie bei einer Fehlerbehebung den CF-RAY einer Website-Anfrage an den Cloudflare-Support weiter. Sie können CF-RAY auch zu Ihren Protokollen hinzufügen, wenn Sie die Konfiguration Ihres Ursprungswebservers mit dem folgenden Ausschnitt bearbeiten, der der Marke Ihres Webservers entspricht:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" %{CF-Ray}i" cf_custom
log_format cf_custom '$remote_addr - $remote_user [$time_local] ''"$request" $status $body_bytes_sent ''"$http_referer" "$http_user_agent" ''$http_cf_ray';