blog:apache_et_la_bande_passante

Apache et la bande passante

Le module mod_cband permet de mettre des quotas de bande passante et de limiter les requêtes et la bande passante utilisée.

Le but de l'opération est ici de limiter les clients extérieurs pour qu'ils ne monopolisent pas ma ligne ADSL au débit ascendant ridicule. De plus, je ne veux pas non plus léser les clients locaux (192.0.2.0/24). Après installation et chargement du module dans Apache, au niveau du serveur définissons quelques paramètres globaux. En particulier, on définit une classe local :

<IfModule mod_cband.c>
        CBandScoreFlushPeriod 1
        CBandRandomPulse On
 
        <CBandClass local>
                CBandClassDst 192.0.2.0/24
        </CBandClass>
</IfModule>

Ensuite, au niveau des hôtes virtuels à gérer, ajoutons ces quelques lignes :

        <IfModule mod_cband.c>
                CBandScoreboard /var/www/kabs-tmp/kabs-cband
                CBandDefaultExceededCode 509
 
                CBandClassRemoteSpeed local 1000Mb/s 50 50
                CBandRemoteSpeed 24kb/s 5 20
        </IfModule>

Créer le répertoire /var/www/kabs-tmp/ et donner au daemon Apache les droits en écriture dessus. Il va alors enregistrer les données de modulation de la bande passante dans le fichier kabs-cband. En cas de dépassement, il envoie au client le code HTTP 509 (Bandwidth Limit Exceeded), code qui n'est spécifié par aucune RFC.

Enfin, on définit pour la classe local une limite à 1 Gb/s, 50 requêtes simultanées et autant de connexions. Par contre, pour le reste du monde, est limité à 24kb/s, 5 requêtes et 20 connexions.

Enfin, dans un virtual host localhost que j'utilise déjà pour /server-status, j'ai ajouté :

        <IfModule mod_cband.c>
                <Location /cband-status>
                        SetHandler cband-status
                </Location>
        </IfModule>

Pour tester, lancer ab(1) avec :

$ ab -c 6 -n 30 http://kabs.homeunix.org/

depuis l'extérieur et observer http://localhost/cband-status pendant ce temps pour vérifier que des connexions sont bloquées (6 connexions demandées au lieu de 5 autorisées ⇒ on doit avoir au moins une erreur 509).

  • blog/apache_et_la_bande_passante.txt
  • Dernière modification : 2011/07/16 18:58
  • de pc