Debian, apache y mod_bandwidth

Escrito el 18 junio, 2003 – 16:00 | por simon | 3.422 lecturas

Para todos los usuarios de Debian, el Apache por default viene instalado con el modulo de control de ancho de banda (mod_bandwidth), pero este viene sin configurar, osea que no le da uso. En este articulo te explicamos como activarlo y ponerlo en funcionamiento.

Este modulo (mod_bandwidth) nos permite limitar el consumo de ancho de banda de Apache, permitiendo que por ejemplo desde determinados IP’s no tengan limite , y desde otros si (por ejemplo que no puedan consumir mas de 10Kb/s) , o que archivos mayores a tantos megas, se bajen a como maximo 10kb/s, etc.

Para utilizarlo, antes que nada, debemos crear un par de directorios que el modulo en cuestion utiliza de forma temporal, y darle permiso de escritura a nuestro webserver en los mismos, para ellos debemos hacer:

mkdir -p /var/lib/apache/mod-bandwidth/
mkdir -p /var/lib/apache/mod-bandwidth/link
mkdir -p /var/lib/apache/mod-bandwidth/master

chown www-data.www-data /var/lib/apache/mod-bandwidth/
chmod 775 /var/lib/apache/mod-bandwidth/ -R

Esto es porque el Apache en Debian corre como usuario ‘www-data’, si lo cambiaste, o usas otra distribucion, verifica esto.

Por otro lado, estos directorios en el módulo default (si lo compilas desde el tgz) en vez de estar en /var/lib/apache/, se encuentran en /tmp/apachebw por lo tanto deberias hacer (en vez de lo anterior) esto:

mkdir -p /tmp/apachebw/mod-bandwidth/
mkdir -p /tmp/apachebw/mod-bandwidth/link
mkdir -p /tmp/apachebw/mod-bandwidth/master

Luego, lo que debemos hacer, es editar el archivo httpd.conf de nuestro apache, y agregar lo siguiente al final del archivo:

# Cargar mod_bandwidth
LoadModule bandwidth_module /usr/lib/apache/1.3/mod_bandwidth.so

# Activar mod_bandwidth
BandWidthModule On

Y apartir de aqui, debemos definir los limites que queremos establecer en nuestro servidor, para ello podemos hacerlo a nivel de -todo- el server (osea que limitamos todo el apache, sin importar los virtualhosts) , o por virtualhosts.

Aca les paso algunos ejemplos:

(En todos los casos, los valores del limite de BW son en Bytes, y los valores de tamaño de archivos usados en LargeFileLimit, son en Kb)

1) Para limitar TODO el trafico de lo que este ubicado en /var/www a 5 kb, poner:

<directory>
BandWidth all 5120
</directory>

Esto significa que -cualquier- cosa que un cliente quiera bajar desde nuestro webserver, que se encuentre dentro del directorio /var/www/, va a poder llegar como -maximo- a una tasa de transferencia de 5kb/s. Este limite es sobre -TODO- el server, por lo tanto, si hay 2 usuarios, bajando cosas de /var/www/, entre ambos podran bajar como maximo a 5kb (2.5kb/s cada uno).

2) Para que los archivos mayores a 2mb no puedan ser bajados a mas de 5kb, debes poner esto:

<directory>
BandWidth all 0
LargeFileLimit 2048 5120
</directory>


Con esto lo que haces es que no haya limite de BW para todos los clientes, -salvo- cuando lo que se esta bajando, sea un archivo superior a 2Mb, si es asi, como maximo van a poder lograr una tasa de transferencia de 5Kb/s.

3) Limitar el consumo de ancho de banda en nuestro server, -salvo- para 2 hosts en particular

<directory>
BandWidth 192.168.0.10 0
BandWidth 192.168.0.55 0
BandWidth all 1024
</directory>

Con eso lo que hacemos es que todo lo que esta adentro del directorio /var/www/downloads, este limitado a 1kb/s, menos para los 2 hosts que ahi definimos (192.168.0.10 y 192.168.0.55) , los cuales no tiene limite.

4) Limitar el consumo de ancho de banda en nuestro server, -salvo- para cualquier máquina de nuestra intranet

<directory>
BandWidth 192.168.1.0/24 0
BandWidth all 1024
</directory>

5) Limitar el consumo de ancho de banda en nuestro server, para un virtualhost determinado

#
# VirtualHost
#

<virtualhost>
DocumentRoot /var/www/prueba.com.ar/htdocs
BandWidthModule On
BandWidth all 1024
</virtualhost>

Con esto lo que hacemos, es limitar el ancho de banda en nuestro server pero solo para el virtualhost prueba.com.ar , el resto de los dominios que tengamos en nuestro server, no se vera afectado por este limite.

Bueno, eso es todo. El modulo en si, tiene muchisimas cosas, permite hacer practicamente lo que quieras limitando, pero tiene muy poca documentación, o nada, es por eso que escribi este mini-howto. Espero que les sirva.

by Storm Night
apache_debian_mod_bandwidth_minihowto.html
version 1.0bes

Links Relacionados:

mod_bandwidth: ftp://ftp.cohprog.com/pub/apache/module/mod_bandwidth.c

Version PDF/txt de este articulo: http://rebellion.sytes.net/drupal/?q=node/8

You must be logged in to post a comment.

Buscar: