Zunächst erkläre ich Ihnen meine Situation. Ich betreibe eine ziemlich beliebte Website als Nebenprojekt, daher kann ich nicht wirklich eine Menge Geld in sie investieren. Ich habe derzeit nur einen Server mit HAProxy im Vordergrund, der normale Anfragen an Apache und alle statischen Dateianfragen an Lighttpd sendet. Dies funktioniert sehr gut, da alle PHP- und Post-Anfragen von Apache bearbeitet werden, während alle Bilder an das schnellere Lighttpd gesendet werden (die Site besteht hauptsächlich aus Bildern, dies ist also sehr wichtig). Es wäre schön, wenn Sie keine Subdomain für die Bereitstellung der Bilder einrichten müssten, denn auch kurze URLs sind sehr wichtig, daher mein Grund für die Verwendung von HAProxy.
Ich habe einen Hosting-Anbieter gefunden, der ziemlich billige, nicht gemessene Bandbreite bietet. Das Problem tritt auf, wenn ich anfange, so viel Bandbreite herauszuschieben, wie die 100-MB-Netzwerkkarte verarbeiten kann, und daher einen zweiten Server benötige.
Ich habe viel über meine Optionen nachgedacht, daher erkläre ich Ihnen jede. Hoffentlich könnten Sie einen Einblick geben, welche Option für mich die beste ist, oder vielleicht gibt es eine andere Option, an die ich noch nicht gedacht habe.
Bedarf:
Eine gleichmäßige Bandbreitenverteilung ist ein Muss. Ich habe einen ziemlich leistungsfähigen Server, daher ist eine Vergrößerung nicht möglich. Ich muss skalieren, um mehr Bandbreite zu erhalten.
Kurze URLs. Ich werde wirklich keine Unterdomäne wie img.example.com einrichten, um meine Bilder bereitzustellen. example.com/image.jpg ist, wie es jetzt ist und wie ich möchte, dass es wirklich bleibt. Aber wenn es keinen anderen Weg gibt, dann verstehe ich.
Der nächste Server, der die Anfrage bearbeitet, wäre wirklich nett, aber kein Muss. Etwas zu beachten.
HAProxy zum Lastenausgleich:
- Es wäre wirklich einfach, da ich HAProxy sowieso bereits benutze. Ich denke jedoch, dass das Problem bei der Verteilung der Bandbreite auftritt. Ich liege möglicherweise falsch, aber sendet HAProxy die Anfrage nicht an einen Server, auf dem der Server sie verarbeitet und dann über HAProxy an den Client zurücksendet? Auf diese Weise wird der gesamte Datenverkehr über den Load Balancer zurückgesendet, sodass er so viel Bandbreite belegt wie alle Server zusammen.
DNS Round Robin:
- Dies könnte meine beste Option sein. Replizieren Sie einfach die Website auf mehreren Servern und machen Sie das, was ich gerade mache. Der Nachteil ist, dass, wenn ein Server ausfällt, weiterhin Clients an ihn gesendet werden. Ich müsste auch die Site über die mehreren Server replizieren. Ich hatte gehofft, ich könnte einen Hauptserver haben, der alles außer statischen Dateien handhabt, und dann ein paar statische Dateiserver. Ich habe auch gelesen, dass dies eine Art Lastausgleich für Arme war, und es wäre schön, wenn etwas etwas ausgefeilter wäre.
Direkte Server-Rückgabe:
- Es scheint wirklich kompliziert, könnte aber eine gute Option sein. Kann ich trotzdem bestimmte URLs an bestimmte Server senden? Wie jetzt bei HAProxy wird jede URL, die mit der richtigen Dateierweiterung endet, an Lighttpd gesendet, während andere Erweiterungen an Apache gesendet werden. Also würde ich etwas Ähnliches brauchen. Ebenso werden alle PHP-Anfragen von demselben Server bearbeitet, auf dem die Balancing-Software ausgeführt wird, während alle JPG-Anfragen an mehrere Server gesendet werden.
Idealerweise wäre mein Problem gelöst, wenn HAProxy Direct Server Return unterstützen würde. Ich möchte auch kein CDN verwenden, da diese sehr teuer sind und es sich letztendlich nur um ein Nebenprojekt handelt.
Verstehst du mein problem Lassen Sie mich wissen, wenn ich etwas falsch erklärt habe oder wenn Sie weitere Informationen benötigen.