Apache : Limiter la bande passante avec ratelimit ou mod_bw
Table des matières
Dans cet article, nous allons voir comment configurer des modules apache pour limiter la bande passante.
Cela peut être utile si Apache propulse un site qui héberge des fichiers.
Ce module permet de limiter la bande passante des clients. Cela s'applique à chaque requête HTTP.
Si on applique une limite de 1Mo/s, et que 3 fichiers sont téléchargés simultanément, la bande passante consommée est de 3Mo/s.
Le module ratelimit est inclus dans Apache depuis la version 2.4.
Pour activer le module :
Sous Gentoo, s'assurer que apache est installé avec le USE apache2_modules_ratelimit.
Sous CentOS 7, dé-commenter LoadModule ratelimit_module modules/mod_ratelimit.so dans /etc/httpd/conf.modules.d/00-base.conf
Sous CentOS 8, dé-commenter LoadModule ratelimit_module modules/mod_ratelimit.so dans /etc/httpd/conf.modules.d/00-optional.conf
Sous Debian, activer le module avec a2enmod ratelimit
Pour vérifier que le module est activé, exécuter
ou
Dans le VirtualHost, spécifier les valeurs lignes :
La valeur de rate-limit est exprimée en ko/s.
Exemple dans une section d'un VirtualHost :
Ce module permet de limiter la bande passante des clients. Cela s'applique à la globalité du VirtualHost.
Si on applique une limite de 1Mo/s, et que 3 fichiers sont téléchargés simultanément, la bande passante consommée est de 1Mo/s, chaque fichier sera téléchargé avec un débit de 333ko/s.
Sous Gentoo, on installe le module via :
Sous Debian, on installe le module via :
Sous CentOS, le module n'est disponible que dans EPEL pour CentOS 6 (au 30/01/2020, ce n'est ni disponible pour CentOS 7, ni CentOS 8) :
Pour vérifier que le module est activé, exécuter
ou
Une fois le module installé et activé, on définit dans le VirtualHost les directives pour appliquer la limitation de la bande passante :
La valeur de Bandwidth est exprimée en o/s.
Introduction
Dans cet article, nous allons voir comment configurer des modules apache pour limiter la bande passante.
Cela peut être utile si Apache propulse un site qui héberge des fichiers.
Méthode avec le module ratelimit
Ce module permet de limiter la bande passante des clients. Cela s'applique à chaque requête HTTP.
Si on applique une limite de 1Mo/s, et que 3 fichiers sont téléchargés simultanément, la bande passante consommée est de 3Mo/s.
Le module ratelimit est inclus dans Apache depuis la version 2.4.
Pour activer le module :
Sous Gentoo, s'assurer que apache est installé avec le USE apache2_modules_ratelimit.
Sous CentOS 7, dé-commenter LoadModule ratelimit_module modules/mod_ratelimit.so dans /etc/httpd/conf.modules.d/00-base.conf
Sous CentOS 8, dé-commenter LoadModule ratelimit_module modules/mod_ratelimit.so dans /etc/httpd/conf.modules.d/00-optional.conf
Sous Debian, activer le module avec a2enmod ratelimit
Pour vérifier que le module est activé, exécuter
Code BASH :
apache2ctl -M | grep ratelimit
ou
Code BASH :
apachectl -M | grep ratelimit
Dans le VirtualHost, spécifier les valeurs lignes :
Code BASH :
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 400
La valeur de rate-limit est exprimée en ko/s.
Exemple dans une section d'un VirtualHost :
Code BASH :
<Location "/archives"> SetOutputFilter RATE_LIMIT SetEnv rate-limit 1024 #Limite de 1Mo/s </Location>
Méthode avec le module mod_bw
Ce module permet de limiter la bande passante des clients. Cela s'applique à la globalité du VirtualHost.
Si on applique une limite de 1Mo/s, et que 3 fichiers sont téléchargés simultanément, la bande passante consommée est de 1Mo/s, chaque fichier sera téléchargé avec un débit de 333ko/s.
Sous Gentoo, on installe le module via :
Code BASH :
emerge -av www-apache/mod_bw
Sous Debian, on installe le module via :
Code BASH :
apt install libapache2-mod-bw
Sous CentOS, le module n'est disponible que dans EPEL pour CentOS 6 (au 30/01/2020, ce n'est ni disponible pour CentOS 7, ni CentOS 8) :
Code BASH :
yum install mod_bw
Pour vérifier que le module est activé, exécuter
Code BASH :
apache2ctl -M | grep bw
ou
Code BASH :
apachectl -M | grep bw
Une fois le module installé et activé, on définit dans le VirtualHost les directives pour appliquer la limitation de la bande passante :
Code BASH :
BandwidthModule On
ForceBandWidthModule On
Bandwidth all "1024000"
La valeur de Bandwidth est exprimée en o/s.