Aktualisieren, hinzufügen, entfernen, Plugins, Themes oder WordPress hinter Load Balancer

Ich verwende WordPress auf zwei identischen Servern. Beide sitzen hinter einem Load Balancer. Beide verwenden dieselbe database.

Wie soll ich Dinge wie ein Plugin oder WordPress aktualisieren?

Mein derzeitiger Gedanke ist:

  1. Trennen Sie einen der Server vom LB – ich weiß also, mit welchem ​​ich arbeite.
  2. Führen Sie die notwendigen Änderungen (zB Update-Plugin) über das Dashboard durch.
  3. Kopiere das notwendige Verzeichnis vom aktiven Server (zB: plugins/some_plugin ) und ersetze diese Datei auf dem inaktiven Server. (Da Änderungen an der database bereits vorgenommen wurden, möchte ich das Dashboard nicht zum Aktualisieren des anderen Servers verwenden).

Ist das die Möglichkeit, Plugins / WordPress zu aktualisieren / zu entfernen / hinzuzufügen?

Ich dachte, dies wäre ein üblicher Weg, um WordPress einzurichten, aber ich fand nicht viel Dokumentation darüber. Gibt es eine bevorzugte Einrichtung?

Vielen Dank.

Solutions Collecting From Web of "Aktualisieren, hinzufügen, entfernen, Plugins, Themes oder WordPress hinter Load Balancer"

Das ist eine fantastische Frage – ich bin persönlich noch nie darauf gestoßen, aber hier ist, was ich versuchen würde, angenommen:

  • Sie haben ein Image eines Servers, den Sie verwendet haben, um neue Instanzen hochzufahren
  • Sie verwenden einen CDN- und Cloud-Speicher für Bilder und Uploads (anstatt einen lokalen Upload-Ordner zu haben)

Mit diesen beiden Annahmen können Sie Instanzen des Servers hoch- und runterdrehen, ohne sich um Datenverluste kümmern zu müssen – die Dateien und die Konfiguration zwischen den einzelnen Servern sind identisch.

  • Erstellen Sie eine neue Instanz Ihres Servers, aber fügen Sie sie dem Load Balancer nicht hinzu
  • Zeigen Sie Ihre Hosts-Datei auf die IP der Instanz
  • Update das Plugin auf der Instanz, stellen Sie sicher, dass alles wie erwartet funktioniert
  • Erstellen Sie ein Abbild des aktualisierten Servers
  • Spin-up eine weitere Instanz basierend auf dem aktualisierten Bild
  • Zeigen Sie die LB auf die neuen Instanzen

Dies ist ein mühsamer process, und ich denke, als Nächstes würden auch automatisierte Bereitstellungstools wie Capistrano oder ein Dienst wie Deploy untersucht.

Dies muss in wenigen Schritten erfolgen

  1. replizieren Sie die DB (falls Sie noch keine haben).
  2. entferne einen Server vom LB, ändere seine Konfiguration, um auf den “neuen” DB zu zeigen.
  3. Verbinde den Admin-Bereich nur mit diesem Server (definiere in deiner Localhosts-Datei die IP oder einen anderen Weg und führe das Upgrade durch).
  4. In der LB schalten Sie den anderen Server aus und das aufgerüstete auf.
  5. Aktualisieren Sie das Plugin auf dem anderen Server (im Grunde ist es genug, um den Code zu aktualisieren)
  6. Verbinden Sie den anderen Server mit dem “neuen” DB
  7. Ändern Sie die LB-Konfiguration, um den anderen Server zu aktivieren.

Da dies keine extrem schnelle Prozedur ist, sollten Sie entweder die Anzahl der Plugins, die Sie als reine Plugins verwenden, minimieren oder versuchen, so viele wie möglich gleichzeitig zu aktualisieren.

(Ich schrieb Plugin, aber es gilt auch für Themen und core)

Ich bin seit vielen Jahren in dieser Situation – 3 Server hinter einem Load Balancer. Verschiedene Disk-Subsysteme. Gemeinsame database Ich habe diese Frage tatsächlich gefunden, indem ich nach einer Möglichkeit suchte, die Verwaltung zu vereinfachen. Was ich seit vielen Jahren mache (und was gut funktioniert hat), ist Folgendes:

  1. Stellen Sie sicher, dass ich automatische Sicherungen von allem (database und Dateien) habe … nur für den Fall. Ich habe sie nie gebraucht, aber das ist immer eine Voraussetzung.
  2. Melden Sie sich bei der WP-Verwaltungskonsole an und notieren Sie, mit welchem ​​Server Sie verbunden sind, falls möglich
  3. Aktualisieren Sie WordPress und Plugins mit den normalen UI-Methoden
  4. Melden Sie sich bei dem fraglichen Server an (und wenn Sie nicht wissen konnten, welche Komponente in Ihrer Infrastruktur verwendet wurde, sehen Sie sich die Zeitstempel der gerade aktualisierten Plugin-Dateien an).
  5. Kopieren Sie den WordPress-Verzeichnisbaum auf die anderen Server.
  6. Sichern Sie die alten WP-Verzeichnisse dort und ersetzen Sie sie durch die neuen Verzeichnisse.

Das ist nie gescheitert. Es wird jedoch nicht zu 100% empfohlen, da WP, das auf den Servern läuft, die noch nicht aktualisiert wurden, während des Upgrades aufgrund von Software- oder databaseinkonsistenzen Probleme haben könnten. Normalerweise ist der process sowieso sehr schnell.

Die beste Lösung besteht darin, die oben genannten Schritte auszuführen, indem Sie die nicht aktualisierten Server zuerst außer Betrieb nehmen und aktualisieren, bevor Sie sie auf Ihrem Lastenausgleichsmodul erneut aktivieren. Ich nehme an, es liegt an Ihnen, wo Sie auf die “schnelle und einfache” vs “Risiko” -Kurve für Ihren Blog passen.

Die meisten dieser Antworten scheinen auf der Annahme zu basieren, dass Sie Ihre Website nur auf einem Remote-Server ausführen / aktualisieren. Einige der Lösungen erscheinen daher sehr kompliziert. Ich habe zwei Standorte, die beide hinter Lastausgleichseinrichtungen laufen – einer mit 2 Servern und einer mit 4 Servern; Beide sind skalierbar auf so viele Server wie nötig. Beide Websites werden mit ein paar Klicks mit einem lokalen Build, Git und Jenkins gepflegt und aktualisiert.

Ich habe eine funktionierende Kopie der Seiten auf localhost die unter XAMPP laufen. Die databaseen sind nicht identisch, aber die Dateistruktur ist. Ich habe auch einen privaten BitBucket-Account und einen .gitignore , um Dinge wie meine lokale wp-config und den Ordner /uploads/ .gitignore zu ignorieren (die ich nicht mit dem Server synchronisieren will oder muss).

Immer wenn es ein Plugin-Update gibt, aktualisiere ich es wie gewohnt über WordPress auf meinem localhost . Sobald es fertig ist, öffne ich meinen Git Client und schiebe die Änderungen auf BitBucket.

Auf dem Server habe ich einen Jenkins- Dienst, der von meiner BitBucket-Quelle auf die Live-Site aufbauen soll. Ich klicke Build , warte ein paar Minuten und alles ist erledigt. Jenkins baut auf allen Servern auf, und es gibt rsync, um sicherzustellen, dass alles simpatico ist.

Also mein gesamter Update-process ist Update lokal -> Git Push -> Jenkins Build

Dies hängt davon ab, ob Sie einen localhost oder einen anderen steuerbaren Build haben, den Sie mit Git pushen können. Sobald er jedoch eingerichtet und ausgeführt wird, wird die Aktualisierung der WordPress-Website mit Lastenausgleich unglaublich einfach.