Bots, Crawlers und Spiders (werden im weiteren Verlauf dieses Artikels als Bots zusammengefasst) durchstöbern alle Seiten, um z.B. die Auffindbarkeit in Suchmaschinen zu gewährleisten. Diese Zugriffe sind größtenteils sinnvoll und normal. Dennoch können zu viele Zugriffe von Bots, besonders in Stoßzeiten, zu einer hohen Serverauslastung führen und sogar zu kritischen Zuständen wie sehr lange Ladezeiten oder sogar einem Serverausfall führen. In solchen Situationen ist es dann besonders wichtig, die Webseiten für menschliche Besucher schnell wieder erreichbar zu machen.
Das EGOCMS bietet mehrere Maßnahmen, um die Zugriffe von Bots gezielt zu steuern.
Inhaltsverzeichnis
Einschränkungen über robots.txt
Sie können auf dem Server eine robots.txt Datei hinterlegen und hier Richtlinien für Bots definieren. Die Inhalte dieser Datei können Sie aber auch dynamisch über den EGOCMS Adminbereich verwalten. Erfahren Sie dazu hier mehr.
Einschränkungen über Meta Einstellungen
Pro Seite kann eingestellt werden, wie Bots mit dieser Seite umgehen sollen. Erfahren Sie dazu hier mehr.
Beachten Sie, dass die Auswertung der Einschränkungen über eine robots.txt und den Meta Einstellungen grundsätzlich von den meisten Bots berücksichtigt wird, aber es auch Bots geben kann, die diese ignorieren.
Bots bei hoher Serverauslastung blockieren
Das EGOCMS verwendet bei der Ausgabe einer Seite zwei Arten von Cache, um beim Zugriff unnötige Datenbankzugriffe zu vermeiden und die Ausgabe zu beschleunigen: die eigene Smarty Cache und den Nginx Cache (sofern als Webserver Nginx verwendet wird und dieser entsprechend konfiguriert ist).
Wenn Bots alle möglichen Seiten durchstöbern, besteht eine sehr hohe Wahrscheinlichkeit, dass dabei viele Seiten aufgerufen werden, die noch nicht/nicht mehr im Cache liegen. Dies kann ja nach der Menge an Bot Zugriffen und den zeitlichen Abständen dieser Zugriffe zu einer hohen Serverauslastung führen.
Das EGOCMS erkennt in solchen Fällen, dass die Serverauslastung sehr hoch ist und der Zugriff über einen Bot passiert, und blockiert diesen Zugriff. Dabei wird der HTTP Status Code 503 Service Unavailable
und der Header Retry-After: 3600
gesendet (falls der Bot diesen Header auswertet, erfolgt der nächste Zugriff erst in einer Stunde).
Die Serverauslastung muss standardmäßig über 80% betragen, damit die Blockade ausgelöst wird. Über Verwaltung > System > Sicherheit > Bots blockieren bei hoher Serverlast kann diese Obergrenze angepasst werden.
Die Serverauslastung berechnet sich in Abhängigkeit der verfügbaren logischen Prozessoren auf dem Server. Diese Anzahl wird automatisch ermittelt, kann aber bei Bedarf in den globalen Einstellungen im Reiter Server angepasst werden.
Sie können die maximale Serverauslastung (100%) auch direkt als Ganzzahl einstellen (unter Globale Einstellungen > Server). Dies ist dann sinnvoll, wenn die Ressourcen auf dem Server geteilt werden und eine klassische Berechnung der Ergebnisse aus dem top Befehl, geteilt durch die Anzahl an Prozessoren zu ungenau ist.