Frage

Meine Website wächst. Ich muss Feature-Sets zu verschiedenen Gruppe von Servern statt, die alle Funktionen laufen auf einem einzigen Server-Kopie partitionieren. Ich habe acht identischen Server in einem Windows Network Load Balancing-Setup.

Das Problem ist: Ich brauche die gleiche URL Raum zu halten. Was wäre eine praktikable Lösung sein? Ich möchte nicht, neuen Domains für die Feature-Sets starten. Ich denke eine Art von Reverse-Proxy mit einiger URL basierend Umschreiben / Routing-Funktionen (?!?). Alle Empfehlungen in Bezug auf die Software oder Hardware? Das wird die WNLB Setup ersetzen, da sie nicht die Fähigkeiten haben ich brauche.

War es hilfreich?

Lösung

Es gibt in der Tat mehrere Lösungen Lastenausgleich implementieren:

  1. DNS Round-Robin
  2. DNS Load Balancing (mit lbnamed)
  3. Proxy Round-Robin
  4. Hardware / TCP Round-Robin

ich verstanden 1) und 2) sind keine Option hier so ... wenn Sie Geld haben und wirklich hohe Leistungsanforderungen , gehen für 4). gehen Else, 3).

Für Proxy Round-Robin wiederum sind mehrere Lösungen möglich: Apache mod_rewrite , Apache mod_proxy , Squid (und sicherlich viele andere, weiß ich nicht)

  • Für "dumme" Last balacing, gibt es ein Beispiel in Apache mod_rewrite der URL-Manipulation (siehe Proxy Durchsatz Round-Robin Abschnitt).

  • Apache mod_proxy kann als Proxy fungiert Kunden mit dem Internet zu verbinden, aber wird in der Regel als Reverse-Proxy verwendet, um eine URL zu einem anderen Server zu umleiten. Es hat keine Cache-Funktionalität (kann aber mit mod_cache verwendet werden und mod_rewrite ...).

  • Squid ist eine Proxy-Cache und ist in der Regel verwendet, Kunden mit dem Internet zu verbinden. Aber es kann auch als Reverse-Proxy verwendet werden und so konfiguriert werden, um die Anforderungen zu cachen und Content-Delivery zu beschleunigen.

Wie Sie sehen können, einer von ihnen die Wahl hängt davon ab, was und wie Sie Proxy möchten. In Ihrem Fall würde ich mit Apache mod_proxy oder Squid prüfen, ob Sie das Caching auf Linux wollen (wenn es eine Option ist).

In Bezug auf die Hardware, ich bin kein Spezialist, aber ich denke, ein „kleiner“ auf „mittel“ dedizierter Server genug sein sollte. Vergessen Sie aber nicht alle Anforderungen, die durch diese Maschine gehen, so dass ihre Dimensionierung auf Verkehr in hohem Maße abhängig ist, die anständig zu sein scheint. Dies könnte einige graben mit dem wirklichen Leben Daten erfordert.

Andere Tipps

Wenn Sie 8-Server haben würde ich mit 7 von ihnen vorschlagen, die Arbeitslast zu teilen und mit einem Front-End-Server als Proxy zu fungieren.

Ihr Front-End-Server kann Apache laufen und verwendet Mod_proxy jede HTTP-Anforderung an einen des 7-Back-End-Server zu übertragen. Sie können Mod_proxy gesetzt, die Arbeit auf der Grundlage der eingehenden URL zu delegieren, wenn Sie brauchen, um so könnten Sie zum Beispiel hat einen Server dient, Video, zwei Blogs Einträge und der Rest zu tun, was sonst zu dienen.

Ihre Front-End-Server wäre extrem leicht: mit Apache und wenig anderes. Sie können auch Ihre statische Inhalte an dieser Front-Server Squid oder Apache mod_cache zwischenzuspeichern, so dass Anfragen für Bilder, js, css und andere statische Inhalte werden niemals Ihre Back-End-7-Server schlagen, sobald es zwischengespeichert wurde.

EDIT: Ich ging gerade ein Kommentar des lesen Pascal und er was auf die gleiche Sache. Ich werde mod ihn +1

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top