Mein Unternehmen wird in Kürze ein Blog einrichten, und ich plane, zwei Webserver einzurichten, um die WordPress-Website aus Redundanzgründen zu hosten. Wenn wir Releases für eine Site in einer Farm durchführen, verschieben wir normalerweise die eine Seite, testen sie und geben sie dann auf die andere Seite frei. Für WordPress-Updates können wir dies leicht genug tun. Das Problem wird jedoch, wie mit dem Ordner wp-content umgegangen wird. Da Benutzer Beiträge veröffentlichen und Grafiken hochladen, müssen diese mit dem anderen Server in der Farm synchronisiert werden, unabhängig davon, auf welchen Server der Benutzer sie hochlädt.
Ich könnte DFS einrichten, um die Dateien zu replizieren, aber das scheint ein Overkill zu sein.
Ich könnte Robocopy so einrichten, dass es alle 15 Minuten oder so ausgeführt wird, und dann jedem mitteilen, dass Beiträge in mindestens 15 Minuten veröffentlicht werden sollen, damit die Dateien Zeit zum Replizieren haben.
Gibt es bessere Lösungen? Vielleicht etwas ein WordPress-Plugin, damit Grafiken, wenn sie in den Beitrag hochgeladen werden, automatisch auf die anderen Server in der Farm repliziert werden?
Ich verwende Wordpress unter Windows 2008, daher helfen Linux-Lösungen nicht viel.
quelle
Ich bin kein Assistent mit IIS, aber hoffentlich wird die Technik übersetzt.
Ich gehe davon aus, dass es einen gemeinsam genutzten Hostnamen gibt, der zwischen den beiden Servern lastausgeglichen ist, und dass es für jeden einen öffentlich zugänglichen Namen gibt.
Was Sie wollen, ist eine bedingte Umleitung auf einem der beiden Server in Kombination mit einer Art Dateisynchronisierung. Wenn der URI mit / wp-content beginnt und die Datei vorhanden ist, stellen Sie sie lokal bereit. Andernfalls leiten Sie zum anderen Server um. Server A leitet zu B weiter und umgekehrt.
Dies sollte zu einer nahtlosen Erfahrung für die Betrachter führen. Sie erhalten lediglich eine vorübergehende Weiterleitung für Bilder im Fenster zwischen dem Start des Posts und der laufenden Synchronisierung. Abhängig von Bandbreiten- oder Redundanzproblemen kann Ihr Synchronisierungsintervall viel länger als 15 Minuten sein, da die Site in dem Moment, in dem der Beitrag veröffentlicht wird, ordnungsgemäß gerendert werden sollte.
In Nginx würde ich dies mit einem Block wie dem folgenden tun:
nginx ist für Windows verfügbar, aber ich bezweifle, dass Sie die Webserver-Software wechseln möchten, um dies zu tun. Hoffentlich kann die Idee auf IIS oder die von Ihnen verwendete Software übertragen werden.
quelle
Ich stelle dies als separate Antwort, weil es ein anderer Ansatz ist:
Wie wäre es, wenn Sie die Bilder in den Cloud-Speicher (Amazon S3 oder ähnliches) stellen und Ihre Benutzer dann Links zur Cloud verwenden. Die Bandbreitenkosten sind möglicherweise etwas höher und es gibt möglicherweise Schulungsprobleme, die Benutzer dazu bringen, zuerst in die Cloud hochzuladen, aber es sind keine lokalen Dateisystem- oder serverübergreifenden Überprüfungen erforderlich.
Es sollte auch unabhängig von der Anzahl der von Ihnen bereitgestellten Server skaliert werden.
quelle
Ist es eine Option, den Inhalt auf einer einzelnen Netzwerkdateifreigabe (kein DFS) zu haben?
Wie wäre es mit unisono ?
quelle
Sie können hierfür rsync verwenden. Wenn Sie Dateien unter Quellcodeverwaltung haben, können Sie andernfalls Capistrano verwenden, um die Daten auf verschiedenen Computern bereitzustellen (und bei Bedarf sogar ein Rollback durchzuführen).
Wenn Sie mehr als einen Computer haben, ist die Bereitstellung und das Rollback sehr nützlich.
quelle
Wie wäre es mit Robocopy mit den folgenden Schaltern: 1. Um Änderungen zu erkennen und die Synchronisierung auszuführen - / MON: n :: MONitor source; erneut ausführen, wenn mehr als n Änderungen angezeigt werden. / MOT: m :: MOnitor-Quelle; In m Minuten erneut ausführen. Zeit, falls geändert.
neways, was hast du endlich für dieses Problem verwendet?
quelle