1. ¡OFERTA! con cupón "DIRVPS": hosting por $0,01 y también VPS Linux y Windows por $0,01 el primer mes por Interserver ← publi
    Descartar aviso
Descartar aviso
Al usar este sitio web, aceptas que nosotros y nuestros socios podamos establecer cookies para fines tales como personalizar el contenido y la publicidad. Más información.

Limitar transferencias directas de IP. Salvaguardar y ahorrar tráfico

Tema en 'Asuntos Técnicos' iniciado por copernico.es, 20 Nov 2005.

  1. copernico.es

    copernico.es Usuario activo

    TUTORIAL
    Limitar transferencias directas de IP. Salvaguardar y ahorrar tráfico.


    El bloqueo y la prevención de abusos de ancho de banda en Apache no es una tarea fácil y nadie es un total experto para hablar de ella. He visto ha mucha gente descargar hasta 20 videos al mismo tiempo en sitios web de alto consumo. Imagínense la cantidad de ancho de banda que consume un sitio así, un caos para el servidor.

    Si usted tiene un sitio con estas características, con grandes descargas, tales como videos, imágenes o pesados documentos, debe leer esto y pensar en ponerlo en ejecución.

    Prevención de abuso de la Anchura de banda

    Una manera habitual es usar el método hotlinking, hace que el uso y nivel de consumo del servidor sea más confiable. Hotlinking es htaccess de un mod_rewrite; básicamente evita que otros sitios pongan las imágenes que se reciben, linkeados en su servidor, en su sitio ahorrará por lo tanto, anchura de banda.

    Yendo más allá y después de cierta investigación hemos encontrado un módulo de Apache llamado: mod_limitipconn.c

    Sobre LimitIPConn
    "ésta es la página de distribución para el módulo mod_limitipconn.c de Apache, que permite que los administradores del web server limiten el número de las transferencias directas simultáneas permitidas de una solo IP."
    Sitio oficial: http://dominia.org/djao/limitipconn.html

    Trabaja con Cpanel....

    Probado en este sistema:
    Red Hat Linux3
    Cpanel 10.8
    Apache 1.3, MySQL 4.1, PHP 4.4


    Usted puede limitar un número específico de transferencias directas por IP en el archivo de la configuración de Apache (httpd.conf) y tener diversas reglas para cada directorio si usted lo desea. Ejemplos: Si usted tiene un directorio llamado /videos usted puede crear un ruleset para ese directorio en el detalle que limita las transferencias directas concurrentes a 1. También puede crear otra regla para un directorio como /archive, limitando las transferencias directas de la imagen a 5.

    2ª Parte: Entender las reglas del limitipconn
    Hay muchas configuraciones que puede utilizar para esto, pienso que es util citar alguna.

    Configuración de ejemplo:


    ExtendedStatus Encendido


    LoadModule limitipconn_module lib/apache/mod_limitipconn.so
    AddModule mod_limitipconn.c

    <IfModule mod_limitipconn.c>
    <Location /somewhere>
    MaxConnPerIP 3
    NoIPLimit image/*
    </Location>

    <Location /mp3>
    MaxConnPerIP 1
    OnlyIPLimit audio/mpeg video
    </Location>
    </IfModule>

    Instalar mod_limitipconn.c
    La instalación es rápida, conéctese como root. (Es sencillo, pero algo de conocimientos teneis que tener y también saber un poquillo de inglés)

    # wget tar xzvf mod_limitipconn-0.04.tar.gz
    # cd mod_limitipconn-0.04
    # vi Makefile
    Find
    APXS = apxs
    CHANGE TO:
    APXS = /usr/local/apache/bin/apxs
    Save

    #make
    #make install

    Esto añade el módulo a httpd.conf y conserva la vieja configuración de httpd.conf.new

    # vi /usr/local/apache/conf/httpd.conf
    It should have added the following:

    LoadModule limitipconn_module libexec/mod_limitipconn.so
    and
    AddModule mod_limitipconn.c

    Ahora necesitamos realizar el setup de la configuración para el sitio al que usted desea agregar los límites. Busque el dominio que usted desea y vaya a la configuración de este en httpd.conf

    Debe hacer esto:


    <VirtualHost IP HERE>
    ServerAlias www.domain.com domain.com

    Agregue la siguiente configuración, ésta restringe 2 directorios que tengo en mi sitio para evitar que los usuarios descarguen más de 1 vídeo a la vez, tenemos 2 reglas separadas.

    <IfModule mod_limitipconn.c>
    <Location /videos>
    MaxConnPerIP 1
    # In this case, all MIME types other than audio/mpeg and video*
    # are exempt from the limit check
    OnlyIPLimit audio/mpeg video
    </Location>

    <Location /forums/media/data>
    MaxConnPerIP 1
    # In this case, all MIME types other than audio/mpeg and video*
    # are exempt from the limit check
    OnlyIPLimit audio/mpeg video
    </Location>

    </IfModule>


    Mi entrada entera para el dominio está así:

    <VirtualHost IPHERE>
    ServerAlias www.domain.com domain.com
    ServerAdmin [email protected]
    DocumentRoot /home/domain/public_html
    BytesLog domlogs/domain.com-bytes_log
    ServerName www.domain.com
    <IfModule mod_php4.c>
    php_admin_value open_basedir "/home/domain:/usr/lib/php:/usr/local/lib/php:/tmp"
    </IfModule>
    <IfModule mod_limitipconn.c>
    <Location /videos>
    MaxConnPerIP 1
    # In this case, all MIME types other than audio/mpeg and video*
    # are exempt from the limit check
    OnlyIPLimit audio/mpeg video
    </Location>

    <Location /forums/media/data>
    MaxConnPerIP 1
    # In this case, all MIME types other than audio/mpeg and video*
    # are exempt from the limit check
    OnlyIPLimit audio/mpeg video
    </Location>

    </IfModule>
    User domain
    Group domain
    CustomLog domlogs/domain.com combined
    ScriptAlias /cgi-bin/ /home/domain/public_html/cgi-bin/
    </VirtualHost>


    Save httpd.conf


    Pruebe la configuración de Apache
    # apachectl configtest start
    Asegurese de que vuelve sin errores

    # /scripts/restartsrv_httpd

    Apache se reiniciará. Vaya a su directorio limitado e intente descargar 2 cosas a la vez (2?? depende del límite de tráfico IP que haya impuesto, está claro). Usted debe ser reenviado a una página 503. Podemos modificar eso para requisitos particulares =)


    Modificar la página temporal del servicio para requisitos particulares 503
    Entrar por ftp a su sitio y modificar public_html/.htaccess

    Agregue lo siguiente:
    ErrorDocument 503 http://www.domain.com/bandwidth.php

    Guardelo y Suba todo.

    Cree una página llamada bandwidth.php o HTML, o lo que usted desee. Ponga un mensaje que diga que usted está previniendo el abuso de la anchura de banda y que está limitando las transferencias directas a 1 a la vez.

    ¡Cerciórese de que todo esté trabajando bien y vaya tranquilo a tomarse un café, usted hizo un buen trabajo, ahora se ahorrará mucho consumo de tráfico en su web si esa era su intención.

    Hasta luego... FIN

    Salu2,
     
  2.  
  3. copernico.es

    copernico.es Usuario activo

    Don Quijote tenía una frase muy buena para esto:

    .- Pancho me sorprendes! Cada día eres más humilde, pero también más complejo... jejeje
     
  4. oxide

    oxide Usuario activo

    Vaya currada de post... es de mucha utilidad para los que esten en el mundo del hosting para mi no mucho... :D
    Saludos
     
  5. copernico.es

    copernico.es Usuario activo

    Pero ... tu eres un "Usuario avanzado" y yo "Novato" :D es broma...
     
  6. oxide

    oxide Usuario activo

    Pues si los ranks estan mal hechos... pero eso ya lo solucionaran... creo :D
    Saludos
     
  7. Juakosnn

    Juakosnn Usuario activo

    excelente aporte doctor ;)
     


Alojamiento web, Hosting Reseller, Servidores Dedicados - All in Hosting


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·