Mon site Web est en train d'être piraté par Google Webspiders. Google est le bienvenu pour indexer mon site, mais parfois il interroge un tagcloud sur mon site plus rapidement que mon server Web peut produire les résultats, ce qui rend mon server web à court de ressources.
Comment puis-je limiter l'access à mon server web de façon à ce que les visiteurs normaux ne soient pas affectés?
Le file robots.txt n'est pas une option car il bloquerait tout le site d'être indexé.
iptables -m recent
est délicat, car certaines pages contiennent beaucoup d'images ou d'autres files de données, ainsi que des triggersurs récents (généralement mon agrégateur RSS, qui charge des images et des stream).
iptables -m limit
a le même inconvénient et en plus de cela, je n'ai pas pu être sélectif par adresse IP source.
Comment puis-je limiter les visiteurs qui causent une charge trop élevée de mon server?
Je cours Apache2 sur le server Ubuntu dans une VM VirtualBox.
Essayez le module mod_qos Apache. La version actuelle a les mécanismes de contrôle suivants.
Cet exemple de règle conditionnelle de la documentation devrait vous permettre d'aller dans la bonne direction.
# set the conditional variable to spider if detecting a # "slurp" or "googlebot" search engine: BrowserMatch "slurp" QS_Cond=spider BrowserMatch "googlebot" QS_Cond=spider # limits the number of concurrent requests to two applications # (/app/b and /app/c) to 300 but does not allow access by a "spider" # if the number of concurrent requests exceeds the limit of 10: QS_LocRequestLimitMatch "^(/app/b/|/app/c/).*$" 300 QS_CondLocRequestLimitMatch "^(/app/b/|/app/c/).*$" 10 spider