99 votes

Comment puis-je mettre en œuvre la limitation de débit avec Apache? (demandes par seconde)

Quelles techniques et / ou quels modules sont disponibles pour implémenter une limitation de débit robuste (requêtes | octets / ip / unité de temps) dans apache?

59voto

Vinko Vrsalovic Points 116138

Le meilleur

  • mod_evasive (plus Axé sur la réduction de DoS de l'exposition)
  • mod_cband (Meilleure vedette de "normal" contrôle de la bande passante)

et le reste

28voto

Diego F. Durán Points 893

Comme indiqué dans ce billet de blog, il semble possible d'utiliser mod_security d'Apache pour implémenter une limite de débit par seconde.

La configuration ressemble à ceci:

 SecRuleEngine On

<LocationMatch "^/somepath">
  SecAction initcol:ip=%{REMOTE_ADDR},pass,nolog
  SecAction "phase:5,deprecatevar:ip.somepathcounter=1/1,pass,nolog"
  SecRule IP:SOMEPATHCOUNTER "@gt 60" "phase:2,pause:300,deny,status:509,setenv:RATELIMITED,skip:1,nolog"
  SecAction "phase:2,pass,setvar:ip.somepathcounter=+1,nolog"
  Header always set Retry-After "10" env=RATELIMITED
</LocationMatch>

ErrorDocument 509 "Rate Limit Exceeded"
 

10voto

Janus Troelsen Points 5121

Dans Apache 2.4, il y a un nouveau module de stock appelé mod_ratelimit . Pour émuler les vitesses de modem, vous pouvez utiliser mod_dialup . Bien que je ne vois pas pourquoi vous ne pouviez pas utiliser mod_ratelimit pour tout.

6voto

wuzer Points 31

Malheureusement, mod_evasive ne fonctionnera pas comme prévu lorsqu'il est utilisé dans des configurations autres que celles de Prefork (les configurations récentes d'Apache sont principalement des MPM)

2voto

mrT Points 48

Une autre option - mod_qos

Pas simple à configurer - mais puissant.

http://opensource.adnovum.ch/mod_qos/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X