No estás registrado (Registrarse)

Vanilla 1.1.10 es un producto de Lussumo. Para más información: Documentación, Soporte.

    •  
      CommentAuthorzikuta
    • CommentTimeSep 20th 2009
     # 1
    Buenos días demenitas,

    en una de mis webs necesito limitar el nº de peticiones que alguien puede hacerle al servidor, ya que en determinados momentos hay muchos visitantes impacientes dándole al F5 para refrescar la página y 3000 online consiguen tumbar MySQL.

    ¿Existe alguna forma de limitar esto?

    Lo único que he encontrado es este código en php:

    <?php
    if (!isset($_SESSION)) {
    session_start();
    }
    // anti flood protection
    if($_SESSION['last_session_request'] > time() - 2){
    // users will be redirected to this page if it makes requests faster than 2 seconds
    header("location: /flood.html");
    exit;
    }
    $_SESSION['last_session_request'] = time();
    ?>


    Que efectivamente funciona, pero quería saber si puede afectar al robot de Google por ejemplo, o si se os ocurre una forma más efectiva ;)

    Grasias de hantebraso BANdidos :bro:Haters gonna hate.
    •  
      CommentAuthorquality
    • CommentTimeSep 20th 2009
     # 2
    ¿por qué crees que puede afectar a G?

    Me imagino que necesitarás ponerlo en una página o unas pocas, ¿no?, que no será necesario en todas.

    G, lo que hace es recorrer las páginas no como un navegador. :confuso:Haciendo Cuentas __ Ayuda Familiar _ _ casas rurales
    •  
      CommentAuthorGüoker
    • CommentTimeSep 20th 2009
     # 3
    Si estas seguro que no es DDoS podes probar antes algo de esto:


    - MySQL tuning, Apache, etc. Optimiza my.cnf, httpd.conf (Prueba reducir el valor de wait_timeout=xxxx para que no queden tantas conexiones colgadas, etc.)
    - Implementar memcached
    - Potenciar el servidor

    Si usas la proteccion anti-flood, en lugar de redirigir a una pagina por defecto (en este caso flood.html) podes usar alguna solucion de este estilo con lo cual evitas que tanto el usuario como el bot no se queden sin contenido :pizza:

    Tambien podrias deshabilitar directamente el refresh del browser mediante javascript (aunque a tus usuarios no creo que les guste) i.e.:

    <Script language="javascript">
    function checkKeyCode(evt)
    {

    var evt = (evt) ? evt : ((event) ? event : null);
    var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
    if(event.keyCode==116)
    {
    evt.keyCode=0;
    return false
    }
    }
    document.onkeydown=checkKeyCode;
    </script>


    Saludos !Shut Up !! Shut the hell up ! There's an Artist on stage !! UuUhh, yakalkiu kutulu, yakatomi pakatu, yakatoshi palaka, miu miuli miu yakatoshi kalaka !
    •  
      CommentAuthorJavi
    • CommentTimeSep 20th 2009
     # 4
    Posted By: GüokerTambien podrias deshabilitar directamente el refresh del browser mediante javascript (aunque a tus usuarios no creo que les guste) i.e.:


    Ese codigo esta muy bien, es más, podrías controlar las veces que entra tu usuario en una pagina y a partir de X veces que haga refresh prohibirselo.
    •  
      CommentAuthorMarc
    • CommentTimeSep 20th 2009 editado
     # 5
    O en vez de prohibirselo directamente, al llegar a X refresh, mostrar un html indicando que no se pueden hacer mas de X refresh cada Y minutos.Domaining...! Te ayudo con la gestión de tus dominios en INWX España - ¿Conoces mi newsletter de dominios?
    •  
      CommentAuthorquality
    • CommentTimeSep 20th 2009
     # 6
    o llamarle abusón en otro dominio diferente :dumb:Haciendo Cuentas __ Ayuda Familiar _ _ casas rurales
    •  
      CommentAuthorzikuta
    • CommentTimeSep 20th 2009
     # 7
    Gracias a todos y en especial a Güoki :tiko:

    Ahora a currar :typeo:Haters gonna hate.