Traffic aufteilen (PHP-Script)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Traffic aufteilen (PHP-Script)

    Hallo zusammen

    Also ich bin mir nicht ganz sicher, ob meine Anfrage hier im richtigen Bereich gestellt wird, aber ich hoffe, dass sie hier trotzdem hinpasst. Ansonsten: Entschuldigung.

    Ausgangslage:
    Ich betreibe eine recht grosse Seite, weile ein imenses Trafficaufkommen hat (ca. 20-30TB im Moment). Ich habe dementsprechend ein hohes Besucheraufkommen. Es handelt sich nicht um ein 1-Click-Hosting oder so.
    Ich habe 2 Server, damit ich die Trafficlast aufteilen kann und ein gewisses Grad an Ausfallsicherheit erreichen kann. Der 2. Server ist im Moment aber noch nicht im Betrieb.

    Problem:
    Wie teile ich den Traffic am besten auf Scriptebene?
    Ich möchte mit Subdomains arbeiten. Also => media1.server.de bzw. media2.server.de - Unter beiden Subdomain ist natürlich der gleiche Inhalt vorhanden, er wird alle 5 min per Cron und rsync abgeglichen und auf den neusten Stand gebracht.
    [*] Wie teile ich den Traffic bzw. die Anfragen auf media1.server.de bzw. media2.server.de am besten um? Ich habe schon an Zufallszahlen gedacht (Wenn Zahl 1, dann media1, wenn Zahl 2, media2). Aber ich kann mich da noch nicht richtig anfreunden. Hat wer bessere Ideen und Lösungen?[*] Ich möchte: Wenn ein Server ausfällt, alle Anfragen auch auf einen Server leiten lassen (z.B. 100% der Anfragen auf media1.server.de, weil media2 offline)[*] Das System sollte erweiterbar auf 3 oder auch 4 Server sein.


    Gruss und vielen Dank für alle Ideen und Ratschläge.

    Miguel

  • #2
    Re: Traffic aufteilen (PHP-Script)

    Insbesondere bei einem solchen Datenaufkommen würde ich da nicht erst PHP-seitig rumfummeln, kommt m.E. zu spät.

    Eher mal nach professionellen Lösungen Ausschau halten - vielleicht in der engl. wikipedia zum Thema Load Balancing u.ä. Quellen.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Japp. Professionelles Load-Balancing ist das einzig wahre.

      Kommentar


      • #4
        PHP-Code:
         Es handelt sich nicht um ein 1-Click-Hosting oder so
        Du willst am code herumfummeln, wenn du noch nicht einmal weist, was du überhaupt für eine seite hast?

        wenn ich mir das spontan überlege, legst du auf beide server dasselbe script.
        um den kompletten inhalt der index legst du nun eine if abfrage. bei jeden aufruf der seite zählst du in einer datei eine zahl höher. wenn die zahl ungerade machst du eine weiterleitung zu server 1 wenn die zahl gerade ist zum 2 server.
        so wird jedes mal deer server gewechselt.

        1. subdomain auf serverwahl.php einstellen.

        serverwahl.php:
        PHP-Code:
        <?php
          $datei 
        fopen("counter.txt","r+");
          
        $counterstand fgets($datei);
          
        $counterstand++;
          
        rewind($datei);
          
        fwrite($datei$counterstand);
          if (
        $counterstand != 0) { 
         echo 
        "<html>";
         echo 
        "<head>";
         echo 
        "<title>Serverauswahl</title>";
         echo <
        meta http-equiv="refresh" content="10; URL=http://server1.de/">' ;
         echo "</head><body>";
          echo "Bitte warten sie. sie werden aus trafficgründen gleich zum Server 1 weitergeleitet.";}
          else { echo "<html>";
         echo "<head>";
         echo "<title>Serverauswahl</title>";
         echo <meta http-equiv="refresh" content="10; URL=http://server2.de/">'

         echo 
        "</head><body>";
          echo 
        "Bitte warten sie. sie werden aus trafficgründen gleich zum Server 2 weitergeleitet."; }
          
        fclose($datei);
          
        ?>
        Webdesign und Webentwicklung - Plunix.de

        Kommentar


        • #5
          Du willst am code herumfummeln, wenn du noch nicht einmal weist, was du überhaupt für eine seite hast?
          hast du die nachricht nicht richtig gelesen?

          das, was du vorschlägst, ist lediglich ein kleiner und nicht funktionierender workaround. soetwas hat nicht mit load balancing zu tun.

          Kommentar


          • #6
            ah sorry habe das "nicht " überlesen. naja grundlegen funktioniert ja mein script. ist aber wenn die person die die seite hat, doch über seine seite bescheid weis und die wirklich nicht soviel traffic verbraucht nicht professionell sein.
            für kleinere sseiten denke aich aber könnte man es nutzen.
            ist jetzt eine schnell zusammengebaute funktion, habe die so ähnlich mal benutzt. man könnte jetzt noch eine prüfung einsetzen, ob die aufgerufenen seiten online sind, und wenn nicht fehler oder anderes ausgeben.
            Webdesign und Webentwicklung - Plunix.de

            Kommentar


            • #7
              für kleinere sseiten [...]
              ...entfällt die problematik.

              Kommentar


              • #8
                Hallo

                Vielen dank für die Ratschläge und Antworten.
                Kurz zum richtig stellen: Ich möchte nicht die ganze Seite teilen (html/php), diese hat schon genug Ressourcen frei auf einem mittelklasse Server. Es geht um den Traffic, der vorallem durch kleine Downloads (4-10MB) entsteht.

                Eine Lösung mit Counter in einem Textfile möchte ich nicht (da je nach dem viele Anfragen gleichzeitig kommen und diese sollten zügig bearbeitet werden). Dies scheint mir doch ein bisschen zu unsauber. Es wäre auch nicht nötig gewesen, dass 50/50 geteilt wird, 55/45 wäre ja auch okay (ich mein: zufall hätte gereicht).

                Ich werde wahrscheinlich ein Versuch mit "pound" starten und so ein kleiner LoadBalancer vorschalten, der die Anfragen teilt. Naja mal sehen, auf alle Fälle danke. Ich hätte gerne eine Lösung im Script gefunden, aber ihr habt mich vielleicht überzeugt, dass es nicht "sauber" ist.


                Gruss
                Miguel

                Kommentar

                Lädt...
                X