Proyecto de Summer Of Code :
Limitador de Ancho de Banda para Apache
|
|
   Bienvenido a la pagina de mi Proyecto. Summer Of Code : Bandwidth Mod.
En esta pagina, estara contenida toda la informacion de mi trabajo. Como funciona, como esta escrito,
y su codigo fuente con documentacion, tanto en ingles como en español.
Bandwidth Mod v0.7
Informacion del Proyecto
Desarrollador | : Ivan Barrera A. |
Localizacion | : Santiago, Chile. |
Organizacion Mentora | : Apache Software Foundation |
Mentores | : Ian Holsman, Paul Querna |
Proyecto | : httpd-mod-bandwidth-limit |
|
Detalles :
El servidor web httpd no tiene una forma de controlar la cantidad
de recursos que un vhost o usuario puede utilizar.
Este modulo debe ser capaz de limtar el acceso a ciertas areas
del web, y limitar usuarios maliciosos.
Agradecimientos
Gracias a todo el equipo de Google, y de Apache.
En especial, a Chris Dibona de Google, e Ian Holsman de Apache,
quienes crearon y ayudaron a todos en esta oportunidad de "Summer Of Code".
|
Limitar Ancho de Banda (Por Vhost/Directorio)
El objetivo principal, es ser capaz de asignar un ancho de banda maximo (o fijo) a un vhost.
Esto se logra insertando pequeños retardos mientras se envia la informacion, limitando asi la
velocidad maxima. Por ejemplo, al asignar 100kb a un vhost, el primer usuario podra descargar a 100Kb/s,
Si otro usuario hace una descarga, ambos podran utilizar 50kb/s. Si llega un tercero, 33kb/s cada uno, y asi..
Portabilidad
Utilizando la libreria APR, la portabilidad es casi asegurada. La version actual ha sido probada con exito en
varias plataformas :
x86/x86-64 Sparc PPC mips, y varios SO, tales como : Linux, FreeBSD, MacOSX, Windows, Solaris.
Documentacion
Documentar cada parte del codigo, asi como tener una documentacion detallada de la configuracion, es parte
de los objetivos principales. La documentacion estara tanto en ingles como español. Los comentarios del codigo, solo en ingles.
|
|
Que hace ?
El modulo trabaja como un filtro de salida en la cadena de filtros de apache
Cuando un usuario comienza una descarga, la informacion pasa por el mod. Si existe un limite,
el mod comenzara a "dividir" la informacion en partes mas pequeñas. Entonces comenzara a enviarlas
con un pequeño retardo (menor a 1 segundo) entre cada parte, asi reduciendo la velocidad con que el usuario
descarga.
Esto es especialmente util para pequeños sitios con velocidad de salida limitada (ej. Clientes ADSLs).
Temas avanzados
Una de las dificultades de hacer esto, es que en algunos MPMs (ej. prefork) la informacion no esta
disponible entre los procesos. Por lo cual el mod necesita asignar un espacio de memoria compartida para
guardar esta informacion.
Tambien existe una funcion que permite limitar el numero maximo de clientes descargando a la vez. Sin
embargo, esto es aun experimental. Mas detalles en la documentacion.
|
|
Descargas Del Proyecto
Bandwidth Mod (o mod_bw) esta disponible bajo la licencia ASL v2.0.
Esta es la ultima version del mod. Actualizaciones futuras seran publicadas en el sitio.
Descarga Bandwidth Mod v0.7 (Source Code)
Descarga Bandwidth Mod v0.7 (Windows DLL for 2.0.54)
Descarga Bandwidth Mod v0.7 Project (Visual C++ 6 Project)
Todos los archivos contienen la Documentacion, la licencia, y el codigo fuente del mod.
Tambien puedes ver la documentacion en linea aqui
Y las instrucciones de como compilar en Windows, aqui
Puedes examinar el CVS, otros archivos, y foros en la Pagina de SourceForge
|