Wordpress-Installation auf zwei Servern - Loadbalancing

14

Ich muss wordpress (Ein Blog, eine Domain, zB mycompany.com/blog) auf zwei Servern installieren, die eine Datenbank auf einem anderen Server teilen. Diese beiden Server stehen hinter einem Loadbalancer und die Datenbank würde sich auf einem anderen Server befinden. Wir planen diesen Weg aufgrund des hohen Verkehrsaufkommens.

Ich habe eigenständige WordPress - Installationen auf einem einzelnen Server unter Windows 2003, 2008 mit IIS6, 7 usw. Durchgeführt

Ich recherchiere nur, wie ich das umsetzen würde.

Was wären die Schritte, um dies zu erreichen und nach der Suche sah ich einige Beiträge zum Verzeichnis wp-content / uploads, die in regelmäßigen Abständen synchronisiert werden sollten?

Ihre Hilfe sehr geschätzt Vielen Dank für das Lesen


Was wir gemacht haben :

a) Wir haben zwei Webserver, die mit einem San-Cluster verbunden sind. b) haben ein Blog-Verzeichnis auf dem San erstellt. c) haben dieses Blog-Verzeichnis als virtuelles Verzeichnis auf beiden Webservern zugeordnet Verzeichnisse sind für beide Server gleich - zB für www.abc.com) e) Die Datenbank für diesen Blog befindet sich auf zwei MySQL-Boxen

Da Wordpress auf dem Server läuft und keine Konflikte mit Uploads oder Ähnlichem auftreten, lautet die URL des Blogs www.abc.com/blog und ist auf beiden Servern so konfiguriert.

Hoffe das hilft jemandem!

rihatum
quelle
1
+1 für den Effekt "Ich hätte nie gedacht, das zu tun".
Richard Slater
1
+1 für "Ich hoffe, jemand gibt eine wirklich gute Antwort mit schrittweisen Anleitungen, wie dies am besten umgesetzt werden kann und warum dies der beste Weg ist."
Jed Daniels
Habe

Antworten:

4

Wenn diese Verzeichnisse identisch sein müssen, können Sie sie dann auf einem anderen Server ablegen und über NFS aus der Ferne bereitstellen?

Matt Simmons
quelle
Wir haben ein SAN; Deshalb haben wir wordpress auf dem SAN installiert und dieses Verzeichnis in IIS als wordpress / blog-Verzeichnis hinzugefügt. Vielen Dank an alle für die Kommentare;
Rihatum
2
Ein SAN ist nicht dasselbe wie NFS.
Chris
3
Sessions mit Memcache teilen, Dateien mit NFS oder GlusterFS teilen. Teilen Sie den Datenverkehr mit HAProxy oder Varnish (auch Caches!) Und geben Sie Datenbanken mit zirkulärer Replikation frei.
Tom O'Connor
GlusterFS ist ein faszinierender Vorschlag - danke dafür. Ich untersuche das als Lösung für meine Wordpress-Skalierung von statischen Dingen.
Artem Russakovskii
3

Es gibt so viele Möglichkeiten, die Leistung von WordPress zu verbessern, ohne dass ein zweiter Server und ein Lastenausgleich erforderlich sind. In zwei Worten: "Cache alles".

  • Verwenden Sie einen PHP-Opcode-Cacher (APC). Mit WordPress in weniger als 64 MB Speicher können Sie problemlos 90% der Cache-Zugriffsraten erreichen.

  • Aktivieren Sie den MySQL-Abfrage-Cache. Sie können leicht 65% oder Cache-Trefferraten mit sehr wenig mem erreichen (Site-abhängig, aber nie zu hoch).

Am wichtigsten:

Wordpress ist eine umfangreiche "Lese" -Seite (im Gegensatz zum Schreiben), bei der die meisten Anfragen auf einige hundert Seiten (Blog-Posts) beschränkt sind. Sie können die Anfragen pro Sekunde um das 10-fache erhöhen, indem Sie statische Versionen Ihrer beliebtesten Posts bereitstellen. Das beste Plugin dafür ist: wp-super-cache. Ich bin mir nicht sicher, ob dieses spezielle Plug-in mit 2k3 kompatibel ist, aber die allgemeine Idee, automatisch statische Versionen Ihrer Seiten zu erstellen und sie regelmäßig zu aktualisieren, um neue Kommentare, Bearbeitungen usw. aufzunehmen, ist die beste Wahl.

Ich bezweifle wirklich, dass Ihre Website genug Traffic liefert, um zwei Web- / App-Server zu benötigen, wenn die oben genannten allgemeinen Verbesserungen implementiert werden (die oben genannten können den Slashdot-Effekt problemlos verarbeiten). Zwei Webserver erhöhen jedoch die Fehlertoleranz. Da die Leistung mit einem Webserver erzielt werden kann, kann die Fehlertoleranz mit einem aktiven / passiven Setup erreicht werden. Dies wäre einfacher und erfordert keine gemeinsame Nutzung von Sitzungsinformationen.

Carpe Noctem
quelle
+1 WordPress hat auch Caching-Plugins, die wirklich gute Arbeit leisten können. Es gibt keinen Grund, WordPress auf zwei Servern wie diesem mit einer angemessenen Menge an aktiviertem Caching auszuführen.
WheresAlice
4
Beim Lastenausgleich geht es nicht nur um Leistung, sondern auch um das Hinzufügen von Redundanz.
Mike P
Wenn Sie WP Super Cache erwähnen, sollten Sie auch W3 Total Cache
david
2

Wir sind auf dieselbe Situation gestoßen und haben schließlich ein S3-Plugin installiert, das Ihr WP-Upload-Verzeichnis hostet, damit Sie sich nicht um die Synchronisierung kümmern müssen.

Dies ist die, die wir verwendet haben: http://tantannoodles.com/toolkit/wordpress-s3/

Es hat bisher großartig funktioniert!

Shennyg
quelle
1
Ich würde davon abraten, ein Plugin zu verwenden, das seit 2009 nicht mehr aktualisiert wurde - es wird nicht mehr gepflegt und Sie können es in Zukunft bereuen (S3-Änderungen, Sicherheit usw.).
Artem Russakovskii
Zu Ihrer Information, wir laufen immer noch gut mit diesem Plugin.
Shennyg
@ Shennyg - immer noch stark?
Ben
@Steve WordPress-S3 ist nicht gepflegt. Ich würde mit w3 Total Cache gehen , es kann Ihre Media Libraries synchronisieren.
Shennyg
0

Sie müssen zwischen den Servern das Upload- / Verzeichnis und das Sitzungsverzeichnis gemeinsam nutzen, normalerweise in / tmp

Ändere es in php.ini und teile das fs für Sessions und hochgeladene Dateien zwischen Servern über Samba, NFS oder was du bevorzugst.

sntg
quelle
0

Als Erstes haben wir hier eine sehr verwandte Frage beantwortet, die Sie wahrscheinlich hilfreich finden werden: SAN + MySQL-Replikation - ist das, was ich für meinen lastausgeglichenen Drupal-Cluster möchte?

Web-Clustering kann sehr weit in die Quere kommen, daher ist es wichtig, dass Sie Ihre Geschäftsziele im Auge behalten und sich nicht in der Ingenieurskunst verlieren. Zum Beispiel planen Sie zwei Webserver und einen Datenbankserver ... aber was ist, wenn der Datenbankserver Ihr Engpass ist? Dann ist Ihr zweiter Webserver verschwendet. Auf moderner Hardware mit einem Webserver und einem Datenbankserver und einem gut konfigurierten WordPress können Sie ein paar hundert Anfragen pro Sekunde bearbeiten. Erwarten Sie das? Wenn nicht, hat das Loadbalancing wahrscheinlich keinen Sinn.

Cagenut
quelle
0

Sitzungen werden besser über Memcache als auf dem Dateisystem geteilt.

Mike
quelle
-1

Auf einem Linux-Paar würde ich DRBD verwenden. Das Windows-Äquivalent ist der Distributed File Service.

http://technet.microsoft.com/en-us/library/cc753479%28WS.10%29.aspx

Terence Johnson
quelle
... mit der Ausnahme, dass DRBD ein Blockgerät bereitstellt, das kaum einem Dateisystem entspricht.
Andol
... und ich kann dann auswählen, mit welchem ​​Dateisystem es formatiert werden soll, was weit mehr Spielraum für Unentschlossenheit bietet, als mit NTFS zu arbeiten;)
Terence Johnson