Ich habe jetzt schon bei mehreren Kunden den Effekt erlebt, dass ihre ganze Website oder alle Unterseiten abrauchten. Die Angaben in den Contao-Logs waren unterschiedlich und nicht klar verständlich, erst der Blick in die Server-Logs hat die Ursache klar gemacht: Der Bingbot spielt verrückt.
Leo Unglaub hatte diesen Bug vor ein paar Monaten gemeldet und die Ursache genauer erklärt. Grob gesagt ist der Ablauf so:
- Auf der Website wird das Download-Inhaltselement eingesetzt, eine der verlinkten Dateien ist aber nicht mehr vorhanden.
- Der Bingbot findet diesen nicht mehr vorhandenen Link und versucht ihn aufzurufen.
- Contao gibt aber eine falsche Servermeldung zurück, was bewirkt, dass der Crawler auf jede Menge vermeintlich echter URLs trifft, die nicht wirklich existieren. Sozusagen die unendliche Geschichte.
- Schlussendlich führt das dann zu einem ewigen Kreislauf, der die Logfiles vollspammt.
- Ich konnte bei Kunden beobachten, dass das Logfile in kürzester Zeit mehrere Gigabyte groß wurde und abrauchte (inkl. allem anderen).
Für Contao 3.x wurde damals eine Lösung gefunden. Die Lösung für Contao 2.11.x ist zwar schon da, aber noch nicht released:
Das Ticket
Die damals veröffentlichte Lösung für 3.x
Die kürzlich erstellte Lösung für 2.11.x
Spinnt der Bingbot?
Nein, eigentlich verhält er sich korrekt und folgt verfügbaren Links. Der Fehler lag darin, dass Contao grob gesagt eine unendliche Anzahl "korrekter" Links an den Crawler gemeldet hat. Die genaue Erklärung gibt es in Englisch im Ticket von LU.
Was tun, wenn man noch eine ältere Version im Einsatz hat?
Hinweis: Alles auf eigene Verantwortung und NUR wenn ihr davor ein Backup der gesamten Website gemacht habt. Der Idealfall ist natürlich, dass ihr die echte Lösung aus dem oben genannten Ticket einspielt (sofern ihr die passende Contao-Version nutzt). Die hier vorgenommenen Einstellungen sind hingegen nur temporäre Möglichkeiten um die Website überhaupt wieder zum Laufen zu bekommen und etwas Zeit für ein Update zu gewinnen.
Ich habe Kunden die noch eine ältere Contao-Version im Einsatz haben und aus diversen Gründen nicht mal einfach so updaten können bzw. das erst in einiger Zeit machen können. Hier sind meine bisherigen Zwischenlösungen. Sie sind nicht perfekt, aber sicher besser als unnutzbare Websites.
A) Checkt die ganze Website und prüft, wo das Download(s)-Inhaltselement im Einsatz ist (oder Module/selbst gebaute Elemente die die gleiche Funktion nutzen). Prüft jeden Download ob er funktioniert. Im Zweifelsfall entfernt das Inhaltselement.
B) Ladet die robots.txt aus dem Root-Ordner herunter und ergänzt sie am Ende mit diesem Eintrag:
Das ist wirklich radikal, da man dadurch den Bingbot komplett von der Website aussperrt (sofern er sich dran hält). Dauerhaft ist das natürlich schlecht, da die Website in der bing-Suchmaschine so nicht auftaucht. Aber in einem Notfall greift man halt zu krassen Mitteln. Das sollte aber wirklich nur temporär eingesetzt werden, bis die eigentliche Lösung (Update) genutzt wird.User-agent: bingbot
Disallow: /
C) Falls unter system/logs/ die Error-Datei riesig ist, könnt ihr sie mit einer gleichnamigen leeren Datei überspeichern. Das macht natürlich erst Sinn, wenn die obigen Einstellungen vorgenommen wurden.
D) Es zahlt sich auch aus, die Tabelle tl_logs in der Datenbank zu leeren (NICHT löschen), falls sie zu groß ist.
PS: Ihr könnt hier gerne bessere Vorschläge anbringen. Das waren nur bisherige Notmaßnahmen für die Sonderfälle die in diesen Bug gerauscht sind und sich eben nicht mal eben durch ein Update helfen konnten.
Lesezeichen