Estuve investigando hace algunos días atrás la posibilidad de limitar cierto tráfico (http) hacia los servidores de la agencia en la cual trabajo (como coordinador de desarrollo) y luego de intentarlo varias veces sin éxito, me topé con un MOD para apache desarrollado por Bruce (Iván Barrera) .
Para poder realizar este tutorial, debes tener permisos de ROOT sobre el servidor con CPANEL que estes utilizando.
Lo primero que tuve que hacer fue descargarme el código fuente actual (mod_bw v0.8 – Source Code) hacia el servidor, y luego correr el comando (Ojo que la instalación la saqué directamente del Readme adjunto con el código de fuente):
apxs -i -a -c mod_bw.c
#o bien
apxs2 -i -a -c mod_bw.cAutomáticamente, el archivo httpd.conf ( /usr/local/apache/conf/httpd.conf ) será modificado y aparecerá la línea de configuración:
LoadModule bw_module modules/mod_bw.soPosteriormente reinicia el servicio httpd (ya sea por consola o bien por el administrador WHM en Restart Services > Httpd Server
Una vez reiniciado, necesitamos especificar las políticas de límites en las conexiones, para ello, es necesario agregar parametros dentro de los virtualhosts de apache. En Cpanel, la única forma de poder hacerlo, es crear includes dentro de una estructura de carpetas reconocidas por la aplicación (ya que el bloque de código que utiliza se genera de forma automática). En este link está el modelo que sigue la aplicación.
La estructura a crear es sencilla
/usr/local/apache/conf/userdata/std/2/X_USUARIO_X/X_DOMINIO_X
Lo que necesitamos es conocer el nombre de usuario y el dominio que vamos a limitar. En este caso y a modo de ejemplo el usuario es donubu y el dominio donubu.com
En la consola de linux ejecutamos el comando:
mkdir -p /usr/local/apache/conf/userdata/std/2/donubu/donubu.com
y si se fijan, utilice los datos anteriores al final de la estructura de carpetas que cree.
Luego, debo entrar a esas carpetas y crear un archivo .conf en este caso lo llamé limit.conf
cd /usr/local/apache/conf/userdata/std/2/donubu/donubu.com touch limit.conf nano limit.conf
y pegue dentro una regla sencilla:
BandWidthModule On ForceBandWidthModule On LargeFileLimit .rar 500 50000
Que enciende el mod_bw , y forza todas las descargas de archivos terminados en .rar que pesen mas de 500kb a una velocidad de 50kbs en promedio.
Hasta el momento tenemos el modulo instalado, la regla creada y sólo nos falta indicarle a Apache que hemos modificado el archivo de configuración y que necesita actualizarlo. Para esto ejecutamos en consola:
/usr/local/cpanel/bin/apache_conf_distiller --update /scripts/rebuildhttpdconf
Si todo va bien, verás el mensaje de confirmación, sino, te indicará el error asociado. Finalmente, y como recomendación, reiniciar nuevamente el servicio Httpd.