Der Wikiserver verbraucht relativ viele Ressourcen, um eine Wikiseite darzustellen. Werden zu viele Seiten gleichzeitig abgefragt, so geht der Server in die Knie, weil er ins Swappen kommt und sich davon nicht mehr erholt. Meist sind es unerwünschte Spider, die burstartig innert kürzester Zeit massiv viele Seiten abrufen.
Man kann dieses Problem auf zwei Arten entschärfen: Dem Server mehr Ressourcen geben oder dafür sorgen, dass nicht mehr Ressourcen gebraucht werden, als zur Verfügung stehen.
Es gibt prinzipiell vier Massnahmen, um die Systemlast zu beschränken:
...
Braven Suchmaschinen kann man in der Datei robots.txt mitteilen, welche Verzeichnisse und Seiten sie nicht abrufen sollen und wie viel Zeit sie zwischen zwei Seitenabrufen verstreichen lassen sollen.
Am 21.05.2017 sah robots.txt auf meinem Wiki-Server folgendermassen aus:User-agent: * Crawl-Delay: 15 Disallow: /ich-will-keine-bots Disallow: /Applications Disallow: /System Disallow: /Sandbox Disallow: /Main Disallow: /Main/WebCreateNewTopic Disallow: /bin/attach Disallow: /bin/changes Disallow: /bin/compare Disallow: /bin/configure Disallow: /bin/edit Disallow: /bin/geturl Disallow: /bin/installpasswd Disallow: /bin/login Disallow: /bin/logon Disallow: /bin/logos Disallow: /bin/mailnotify Disallow: /bin/manage Disallow: /bin/oops Disallow: /bin/passwd Disallow: /bin/preview Disallow: /bin/rdiff Disallow: /bin/rdiffauth Disallow: /bin/register Disallow: /bin/rename Disallow: /bin/resetpasswd Disallow: /bin/rest Disallow: /bin/save Disallow: /bin/savemulti Disallow: /bin/search Disallow: /bin/setlib.cfg Disallow: /bin/statistics Disallow: /bin/testenv Disallow: /bin/upload Disallow: /bin/viewauth Disallow: /bin/viewfile Disallow: /list/
...
Man kann versuchen, Computer, die sich nicht an robots.txt halten, automatisiert zu erkennen und zu sperren. Dies macht die Spidertrap: Hinter einer URL, die per robots.txt verboten wird, versteckt sich ein Skript, das automatisch jede IP-Adresse, welche diese URL abruft, in .htaccess als verbotene IP-Adresse aufnimmt. Damit kann ein bösartiger Spider zwar anfangen, das Wiki abzugrasen, wird sich aber über kurz oder lang in der Spidertrap verheddern und ausgeschlossen werden.
Ich verwende zu diesem Zweck http://www.spider-trap.de/<IfModule qos_module> # detect search engines: BrowserMatch "slurp" QS_Cond=spider BrowserMatch "googlebot" QS_Cond=spider BrowserMatch "Baiduspider" QS_Cond=spider BrowserMatch "AhrefsBot" QS_Cond=spider BrowserMatch "YisouSpider" QS_Cond=spider BrowserMatch "SEOkicks-Robot" QS_Cond=spider BrowserMatch "HaosouSpider" QS_Cond=spider BrowserMatch "MJ12bot" QS_Cond=spider # set limit for spiders QS_LocRequestLimitDefault 200 # set limit for spiders QS_CondLocRequestLimitMatch "^/.*$" 10 spider # limits concurrent requests to the location /Blog QS_LocRequestLimit /Blog 20 QS_LocRequestLimit /NKSA 5 QS_LocRequestLimit /NIEBhutan 5 </IfModule>