Best Practice für Warnungen, wenn eine Webseite eine weiße Seite zurückgibt?

Best Practice für Warnungen, wenn eine Webseite eine weiße Seite zurückgibt?

Wir versuchen, ein Monitoring (Zabbix) für Webanwendungen einzurichten, die eine White Page of Death zurückgeben. Die Apps basieren auf PHP.

Soweit ich weiß, kann der „White Screen of Death“ verschiedene Ursachen haben, darunter Speicherprobleme, Syntaxfehler usw.

Daher möchte ich fragen, ob es besser ist, sich darauf zu verlassen, dass der Webserver den Code 50x zurückgibt, oder ob es (irgendwie) möglich ist, den Rückgabecode 200 zu erhalten, die gerenderte Seite aber leer (weiß) ist?

Antwort1

Das Verlassen auf HTTP-Statuscodes ist die beste und am häufigsten verwendete Vorgehensweise. Wenn PHP auf kritische Fehler stößt, sollte es mit einem entsprechenden HTTP-Fehlercode beendet werden.

Ein kritischer Fehler mit einem HTTP-Statuscode 200 ist eine falsche Behauptung und sollte vermieden werden. Selbst schön gestaltete 404-Seiten sollten den HTTP-Fehlercode 404 und nichts anderes verwenden.

Mithilfe von HTTP-Fehlercodes können Sie:

  • Verwenden Sie vorhandene Online- und Vor-Ort-Überwachungstools, um Ihre Websites und Apps zu überwachen.

  • Erlauben Sie Browsern, entsprechend dem angegebenen Fehler zu reagieren

  • Teilen Sie Google und anderen Suchmaschinen mit, dass auf Ihrer Website ein Fehler vorliegt und nicht neuer Inhalt

  • Konfigurieren Sie Nginx so, dass korrektes HTML angezeigt wird und der Fehlercode beibehalten wird, wenn Ihr PHP mit einem schwerwiegenden Fehler beendet wird.

    ...

Antwort2

Wenn Sie eine Website ordnungsgemäß überwachen möchten, sollten Sie eine oder mehrere Zeichenfolgen identifizieren, die in Ihrem Webinhalt vorkommen, und Ihren Monitor überprüfen lassen, ob diese Zeichenfolgen in der HTTP-Antwort vorhanden sind.

Wenn Sie eine Webanwendung ausführen, die Formulardaten sammelt und verarbeitet, sollten Sie einen interaktiven Monitor erstellen, der Formulare verarbeitet und bestätigt, dass das Formular das richtige Ergebnis zurückgibt. Sie können dies auf verschiedene Weise tun. In der Vergangenheit habe ich dazu Jmeter mit Nagios integriert, aber Sie können auch Onlinedienste wie Pingdom verwenden.

Sich auf HTTP-Statuscodes zu verlassen, ist meiner Meinung nach keine gute Praxis. Ein DB-Fehler in PHP könnte immer noch einen HTTP-Status 200 zurückgeben. Ebenso könnte eine Site, die verunstaltet wurde, einen Statuscode 200 zurückgeben.

https://exchange.nagios.org/directory/Plugins/Java-Applications-and-Servers/jmeter-invocation-plugin-II/details

https://www.pingdom.com/

verwandte Informationen