1. ✅ Apprenez une METHODE qui marche pour votre SEO ! Formation à distance avec Olivier Duffez et Fabien Facériès + aide pour prise en charge du financement
    Rejeter la notice

Répartir la charge

Discussion dans 'Administration d'un site Web' créé par Nitou, 8 Avril 2003.

  1. Nitou
    Nitou WRInaute impliqué
    Inscrit:
    1 Décembre 2002
    Messages:
    696
    J'aime reçus:
    0
    Bonjour ;)

    J'ai une petite question !

    Voulant faire du load balancing, conscistant à répartir la charge entre plusieurs serveurs j'ai créer www2 en sus de www, j'ai un script php qui évalue la charge du serveur www et qui selon le chiffre donné ou le nombre de hit durant une certaine durée, redirige les visiteurs étant sur www vers www2, j'ai peur que google visite www2 et me pénalise pour duplicate content, c'est pourquoi j'amerais savoir ce que vous feriez pour éviter que google aille sur www2 ?

    Le site : www.infos-du-net.com

    Merci @ vous :wink:
     
  2. jdl
    jdl Nouveau WRInaute
    Inscrit:
    8 Avril 2003
    Messages:
    5
    J'aime reçus:
    0
    2 possibilités :

    Insérer un tag META sur le fichier index de www2:
    Code:
    <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
    Créer un fichier robots.txt a la racine du www2 pour interdire a google et autres de l'indexer
    Code:
    User-agent: *
    Disallow: /
    
     
  3. Guig2
    Guig2 WRInaute occasionnel
    Inscrit:
    31 Janvier 2003
    Messages:
    251
    J'aime reçus:
    0
    Dans ton script de redirection tu peux aussi faire une liste de user_agent ou d'ip à envoyé automatiquement sur le www
     
  4. Richard
    Richard WRInaute discret
    Inscrit:
    9 Février 2003
    Messages:
    126
    J'aime reçus:
    0
    Bonjour,

    ce n'est pas tellement en PHP que tu dois gérer ça, mais en amont.

    Tu peux déjà le faire au niveau du DNS en définicant un "tourniquet" ( round-robin ) qui va alternativement donner l'IP d'un serveur ou de l'autre. Mais les deux répondrons toujours au même nom de domaine.

    Ainsi, tu ne te poses plus la question des moteurs de recherche et le PHP devient inutile (surtout que lui doit aussi venir charger ta machine).

    D'autres solutions existent ensuite mais sont plus lourdes à mettre en place, ou sur serveur IIS :
    - load balancing matériel : c'est un boitier qui "s'occupe" de tout
    - load balacing soft avec IIS ( uniquement sur la version advanced server de Windows 2000 )
    - autres solutions soft

    Voila, donc le round-robin sur le DNS me semble le plus approprié.

    A++
     
  5. Nitou
    Nitou WRInaute impliqué
    Inscrit:
    1 Décembre 2002
    Messages:
    696
    J'aime reçus:
    0
    J'aimerai désactivé le script de load balancing s'il y a googlebot, mais je ne trouve pas la soluce :(

    J'ai essayé ça :

    if (strpos($_SERVER["REMOTE_HOST"], "googlebot.com") != true){
    include("script.php");
    }

    Quelqu'un a la solution ? :roll:
     
  6. cariboo
    cariboo WRInaute impliqué
    Inscrit:
    8 Février 2003
    Messages:
    600
    J'aime reçus:
    0
    Merci, Richard, j'ai le même besoin que Nitou, donc tu as répondu aussi à une question que je n'ai pas eu besoin de poser :lol: :lol:

    Question complémentaire de béotien sur les serveurs de DNS : comment tu paramètres un "tourniquet" dans la pratique sur le serveur de DNS ?
     
  7. Richard
    Richard WRInaute discret
    Inscrit:
    9 Février 2003
    Messages:
    126
    J'aime reçus:
    0
    Bonjour Cariboo, bien content d'avoir fait d'une pierre deux coup :)

    Pour paramétrer le DNS, ca dépend essentiellement du DNS. Sur linux, il y a de forte chance que ce soit BIND. Dans ce cas, ce sera certainement dans le fichier de la zone qu'il faudra donner plusieurs adresse au même HOST Pour la suite en revanche, je ne suis pas trés familier avec BIND, je te renvois donc vers la documentation de BIND...

    En ce qui concernant le DNS Windows 2000, c'est un simple case à cocher après avoir défini toutes les IPs possibles pour le HOST.
    Gestion DNS -> propriétés du serveur -> Avancées -> Activer le Round Robin ( c'est la traduction de la version US, donc pas forcément exacte par rapport à une version FR ).

    Je crois que c'est par ailleur une configuration par défaut sur W2K. Peut-être que quelqu'un pourrait nous dire si c'est aussi par défaut sur BIND ?


    Pour NITOU:

    tu ne testes pas la bonne variable serveur... C'est le useragent qu'il faut tester:
    $_SERVER["HTTP_USER_AGENT"]
     
  8. Nitou
    Nitou WRInaute impliqué
    Inscrit:
    1 Décembre 2002
    Messages:
    696
    J'aime reçus:
    0
    Je test par rapport à l'host donc googlebot.com, cela devrait également fonctionner ?
     
  9. Nitou
    Nitou WRInaute impliqué
    Inscrit:
    1 Décembre 2002
    Messages:
    696
    J'aime reçus:
    0
    J'ai essayé un tas de manipulation mais je n'y parviens pas, pourtant ça ne doit pas être bien dur :oops: :cry: :cry: :cry:
     
  10. WebRankInfo
    WebRankInfo Admin
    Membre du personnel
    Inscrit:
    19 Avril 2002
    Messages:
    19 787
    J'aime reçus:
    452
    tu n'as qu'à t'inspirer de ce qui est fait dans GoogleStats !
     
  11. Nitou
    Nitou WRInaute impliqué
    Inscrit:
    1 Décembre 2002
    Messages:
    696
    J'aime reçus:
    0
    J'ai regardé googlestats et je suis parvenu à ça :

    if ($_SERVER["HTTP_USER_AGENT"] == "Googlebot")
    {
    echo("");
    } else {
    include("script.php");
    }

    Pouvez-vous me dire si vous observez une erreur ?

    Merci beaucoup :oops:
     
  12. Ben
    Ben WRInaute discret
    Inscrit:
    20 Février 2003
    Messages:
    171
    J'aime reçus:
    0
    a quoi sert le echo "" ?

    si la chaine n'est pas exactement egale tu devrais utiliser une comparaison, p.ex:

    Code:
    if eregi("googlebot", $_SERVER["HTTP_USER_AGENT"] ) 
    { 
    include("script.php"); 
    } 
    Ben
     
  13. Nitou
    Nitou WRInaute impliqué
    Inscrit:
    1 Décembre 2002
    Messages:
    696
    J'aime reçus:
    0
    C'est bon, c'est reglé merci ;)
     
  14. Jocelyn
    Jocelyn WRInaute occasionnel
    Inscrit:
    6 Novembre 2002
    Messages:
    382
    J'aime reçus:
    0
  15. Gilbert Wayenborgh
    Gilbert Wayenborgh WRInaute occasionnel
    Inscrit:
    16 Décembre 2002
    Messages:
    387
    J'aime reçus:
    0
    Voui, sans être expert en la matière... j'ai cru voir dans une doc, qu'apache pouvait faire du load balancing entre serveur....
     
  16. Nitou
    Nitou WRInaute impliqué
    Inscrit:
    1 Décembre 2002
    Messages:
    696
    J'aime reçus:
    0
    J'aurais bien voulu le faire avec la méthode citée dans cette page mais le script PERL qui va avec ne semble pas fonctionner :cry:
     
  17. Nitou
    Nitou WRInaute impliqué
    Inscrit:
    1 Décembre 2002
    Messages:
    696
    J'aime reçus:
    0
    Dites quelqu'un aurait la solution à ce probleme :

    Je m'explique, pour avoir l'utime du serveur, le script s'execute ainsi :

    Code:
        $buffer = `utime`
        ereg("averages: ([0-9][.][0-9][0-9]), ([0-9][.][0-9][0-9]), ([0-9][.][0-9][0-9]*)", $buffer, $load);
        return max((float)$load[2], (float)$load[3], (float)$load[4]);
    Cependant j'ai un gros probleme, PHP interdit les backquotes "`utime`" par contre perl qui utilise la meme commande, lui l'autorise donc j'ai essayer un truc de ce genre :

    Code:
        $buffer = readfile('/home/path/uptime.pl');
        ereg("averages: ([0-9][.][0-9][0-9]), ([0-9][.][0-9][0-9]), ([0-9][.][0-9][0-9]*)", $buffer, $load);
        return max((float)$load[2], (float)$load[3], (float)$load[4]);
    Uptime.pl lui donne ça : 5:55PM up 9 days, 5:01, 0 users, load averages: 1.37, 1.21, 1.10

    Si je remplace $buffer = readfile('/home/path/uptime.pl'); par $buffer = "5:55PM up 9 days, 5:01, 0 users, load averages: 1.37, 1.21, 1.10"; le script fonctionne correctement, donc j'en déduis que le buffer n'arrive pas à récupérer la variable de uptime.pl, je pense que c'est mon code qui n'est pas bon, Quelqu'un aurait une idée ?

    uptime.pl lui ne sort rien d'autre qu'une ligne quand on l'éxécute à savoir : "5:55PM up 9 days, 5:01, 0 users, load averages: 1.37, 1.21, 1.10"

    Merci de votre aide :(
     
  18. Jocelyn
    Jocelyn WRInaute occasionnel
    Inscrit:
    6 Novembre 2002
    Messages:
    382
    J'aime reçus:
    0
    Je n'ai pas testé le script de répartition de charge en perl auquel je faisais référence, donc je ne peux rien en dire d'autre.

    Pour le PHP, quelques idées :
    - PHP n'interdit les backquotes, mais le "safemode" de PHP, s'il est activé, les interdit
    - la fonction utime() (ou un équivalent) n'existe pas (ou j'ai mal cherché)
    - la fonction readfile est interdite par le "safe mode"
    - la fonction readfile renvoie un code d'erreur qui permet de savoir si elle s'est correctement exécutée
    - si le fichier '/home/path/uptime.pl' n'est pas dans DOCUMENT_ROOT ni dans include_path, ça ne fonctionnera pas
    - on peut utiliser fread pour obtenir le même résultat
    - au besoin, modifier la valeur de error_reporting et de 'display_errors' grâce à ini_set

    Voila, pas d'autres suggestions. :wink:

    Jocelyn
     
  19. Nitou
    Nitou WRInaute impliqué
    Inscrit:
    1 Décembre 2002
    Messages:
    696
    J'aime reçus:
    0
    Merci Jocelyn :wink:

    Le probleme c'est que pour qu'il récupère ce qu'il y a dans uptime.pl il faut qu'il l'execute pour qu'il soit lu par PERL car si je lui donne le DOCUMENT_ROOT il va lire ce qu'il y a dans le fichier uptime.pl mais il me donnera pas l'Uptime du serveur car il ne sera pas interprété, ce que je cherche c'est comment ouvrir avec une URL du genre http://www.site.com/uptime.pl

    donc si j'ouvre l'url avec un readfile par exemple, il charge bien la page mais il ne garde pas l'uptime (5:55PM up 9 days, 5:01, 0 users, load averages: 1.37, 1.21, 1.10) pour le donner au buffer :((

    Si quelqu'un sait, merci d'avance :)
     
  20. Nitou
    Nitou WRInaute impliqué
    Inscrit:
    1 Décembre 2002
    Messages:
    696
    J'aime reçus:
    0
    Finalement j'ai réussi grâce à toi :)

    Merci beaucoup

    J'ai fais ça en fait :

    Code:
        $filename = "http://www.site.com/dossier/uptime.pl";
        $fd = fopen($filename, "r");
       $buffer = fread($fd, filesize ($filename));
        ereg("load averages: ([0-9][.][0-9][0-9]), ([0-9][.][0-9][0-9]), ([0-9][.][0-9][0-9]*)", $buffer, $load);
        return max((float)$load[2], (float)$load[3], (float)$load[4]);
        fclose($fd);
    Si tu penses que ça peut etre optimisé, dis le stp :)

    Encore merci
     
  21. Jocelyn
    Jocelyn WRInaute occasionnel
    Inscrit:
    6 Novembre 2002
    Messages:
    382
    J'aime reçus:
    0
    Bon, tant mieux , ma liste de suggestions a servi à quelque chose. C'était quoi ? problème de "safe mode" ?

    Oui, je propose une optimisation de l'expression régulière :
    Code:
    ereg("load averages: ([0-9]\.[0-9]{2})(, ([0-9]\.[0-9]{2})){2}", $buffer, $load);
    devrait fonctionner aussi avec les exemples que tu as précédemment donnés.

    {n} -> exactement n fois ce qu'il y a dans le groupe de parenthèses qui précède.

    Remarque : tu devras faire des essais pour savoir quels sont les éléments du tableau $load qui t'intéressent.

    Jocelyn
     
  22. Nitou
    Nitou WRInaute impliqué
    Inscrit:
    1 Décembre 2002
    Messages:
    696
    J'aime reçus:
    0
    Le probleme est effectivement lié au safemode, du moins je pense mais la fonction readfile fonctionne :?: :?:

    Merci pour tes suggestions :)
     
  23. olivierb
    olivierb WRInaute discret
    Inscrit:
    11 Juillet 2003
    Messages:
    89
    J'aime reçus:
    0
    salut,

    je fais remonter ce sujet car j'ai testé le système round-robin mais ça ne semble pas marcher.

    Tout le monde arrive à chaque fois sur le meme serveur.

    J'ai mis ceci dans mon fichier d'enregistrement

    Code:
    $ttl 86400
    internetservices-fr.com.        IN      SOA     ns1.i-services.net. webmaster.i-services.net. (
                            2003011604
                            21600
                            3600
                            604800
                            86400 )
    internetservices-fr.com.        IN      NS      ns1.i-services.net.
                    IN      NS      ns.ovh.net.
                    IN      MX      10 mail.internetservices-fr.com.
                    IN      A       213.186.39.149
    www0            IN      A       213.186.39.149
    www1            IN      A       213.186.39.207
    mail            IN      A       213.186.39.149
    smtp            IN      A       213.186.39.149
    sql             IN      A       213.186.39.207
    dev             IN      A       213.186.39.207
    www             IN      CNAME   www0.internetservices-fr.com.
                    IN      CNAME   www1.internetservices-fr.com.
    et si je fais une requete avec dig j'obtiens un message d'erreur

    Code:
    [root@ns1 root]# dig www.internetservices-fr.com @ns1.i-services.net
    
    ; <<>> DiG 9.2.3 <<>> www.internetservices-fr.com @ns1.i-services.net
    ;; global options:  printcmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 42762
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;www.internetservices-fr.com.   IN      A
    
    ;; Query time: 1 msec
    ;; SERVER: 213.186.39.149#53(ns1.i-services.net)
    ;; WHEN: Mon Dec 15 19:51:45 2003
    ;; MSG SIZE  rcvd: 45
    alors que si je retire les lignes avec le cname j'ai une section "answer" et le statut "noerror"

    ou me suis-je trompé ??

    merci

    Olivier
     
Chargement...
Similar Threads - Répartir charge Forum Date
Repartir à zéro ? Problèmes de référencement spécifiques à vos sites 6 Septembre 2015
Comment repartir sur une autre URL pour cause de dégringolade ? Débuter en référencement 22 Novembre 2013
Quand décider de repartir de zéro ? Problèmes de référencement spécifiques à vos sites 6 Novembre 2013
Repartir avec nouveau ndd sans 301 : témoignages ? Référencement Google 5 Juillet 2013
Répartir un budget quotidien en fonction du jour de la semaine AdWords 2 Mai 2012
SandBox => Repartir sur de bonnes bases ou rattraper le coup ? Débuter en référencement 9 Avril 2010
Repartir de zéro : Comment faire ? Débuter en référencement 14 Octobre 2009
Search Console Problèmes chargements images Crawl et indexation Google, sitemaps 3 Septembre 2020
WordPress optimisation des temps de chargements Débuter en référencement 28 Juin 2020
Vitesse du site, temps de chargement etc Débuter en référencement 18 Février 2020