Ich habe mehrere Linux-Webserver an einen Load Balancer angeschlossen und teile gerne Assets (wie Bilder, Videos und andere Dinge) zwischen diesen Servern. Wie geht das am besten?
Gegenwärtig habe ich auf allen Webservern einen Dateiserver gemountet, aber ich mache mir Sorgen, dass dieser unter hohem Datenverkehr ausfällt. Wie kann ich das verhindern?
Danke im Voraus.
linux
web-server
file-sharing
getmizanur
quelle
quelle
Antworten:
Es gibt mehrere Möglichkeiten, dies Ihren Bedürfnissen entsprechend zu tun.
Die ersten beiden sind am besten, wenn Sie viele neue Dateien haben. Die dritte Option ist die ideale Lösung, wenn Sie keine Dateien hinzufügen oder ändern, da die Benutzer 404-Werte für statische Inhalte erhalten, die noch nicht synchronisiert sind.
Die letzte Option könnte in vielerlei Hinsicht ideal sein, könnte sich aber auch als die teuerste der 4 herausstellen. Sie müssten auch Ihre Websites neu schreiben, um dies zu unterstützen.
quelle
Eine weitere großartige Möglichkeit, die Last auf Webservern zu verringern und den Lastausgleich durchzuführen, ist die Verwendung von Squid (Squid3). Richten Sie es als Reverse-Proxy mit Caching ein. Bei dieser Einstellung werden statische Inhalte wie Bilder usw. entweder auf der Festplatte (Standardeinstellung) oder im RAM (schneller und am besten) zwischengespeichert. Es ist auch in der Lage, Round-Robin-Verfahren für andere Squid-Server durchzuführen, wenn ein bestimmter Knoten überlastet ist.
quelle
Da in der Regel mehr Server für die Ausführung dynamischer Websites / Apps erforderlich sind, sollten Sie statische Assets in einer anderen Subdomäne / Domain hosten. (wie static.yourdomain.com)
Sie können dann einen oder mehrere andere Server zum Hosten verwenden. Das Hosting von statischen Dateien beansprucht nicht viel Ressourcen, sodass Sie erheblich weniger Server für Ihre statischen Inhalte benötigen. Sie werden auch einige Ressourcen auf den Servern für Ihre dynamischen Inhalte freigeben.
Abhängig von Ihrem Load Balancer können Sie dies möglicherweise auch in derselben Domäne tun, wobei der Load Balancer entscheidet, welcher Server für welche Anforderung verwendet werden soll. Wenn Sie jedoch eine separate Domäne verwenden, können Sie Ihre statischen Assets ganz einfach auf einem CDN ablegen, wenn das Bedürfnis sollte aufkommen!
quelle
Eine Lösung für diese Herausforderung besteht darin, die Haupt-Lese- / Schreibkopie der Dateien auf einem freigegebenen NFS-Laufwerk zu haben, aber auch auf jedem Webserver eine Nur-Lese-Kopie zu behalten, damit bei einem Ausfall des NFS-Hosts auf Dateien zugegriffen werden kann im schreibgeschützten Modus, anstatt sie vollständig zu verlieren.
rsync
Läuft alle 15 Minuten, um die schreibgeschützte Kopie auf jedem Webhost auf dem neuesten Stand zu halten.check_link
Bash-Skript wird jede Minute ausgeführt, um sicherzustellen, dass der NFS-Mount noch vorhanden ist. Andernfalls wird ein Symlink zu der schreibgeschützten Kopie ausgetauscht.Weitere Details finden Sie in diesem Artikel, als ich dieses System zum ersten Mal einrichtete.
Vorteile:
Nachteile:
quelle
Möglicherweise möchten Sie eine NoSQL-Datenbank in Betracht ziehen. Sie sind so konzipiert, dass sie in Clustern arbeiten und letztendlich für Konsistenz sorgen. Aber seien Sie vorsichtig, sie sind nicht sauer.
Hier ist eine Einführung , die Ihnen bei der Entscheidung hilft, welche Art von NoSQL-Datenbank Sie für Ihren Zweck benötigen.
Hier finden Sie eine Liste der Ressourcen zu verfügbarem NoSQL.
quelle
Versuchen Sie es mit einer DFS-Lösung, da diese ein hohes Maß an Redundanz bietet und das Volume von beliebig vielen Benutzern gemeinsam genutzt werden kann. Gluster ist mein Favorit und lässt sich sehr einfach in jeder bekannten Linux-Distribution installieren und konfigurieren
quelle