Website-Suche

So synchronisieren Sie zwei Apache-Webserver/Websites mit Rsync


Es gibt so viele Tutorials im Internet, wie Sie Ihre Webdateien mit unterschiedlichen Methoden spiegeln oder sichern können. Hier erstelle ich diesen Artikel für meine zukünftige Referenz und verwende hier einen sehr einfachen und vielseitigen Befehl von Linux um ein Backup Ihrer Website zu erstellen. Dieses Tutorial hilft Ihnen, Daten zwischen Ihren beiden Webservern mit „Rsync“ zu synchronisieren.

Der Zweck der Erstellung einer Spiegelung Ihres Webservers mit Rsync besteht darin, dass bei einem Ausfall Ihres Hauptwebservers Ihr Backup-Server übernehmen kann, um die Ausfallzeit Ihrer Website zu reduzieren. Diese Art der Erstellung eines Webserver-Backups ist für kleine und mittlere Webunternehmen sehr gut und effektiv.

Vorteile der Synchronisierung von Webservern

Die Hauptvorteile der Erstellung eines Webserver-Backups mit rsync sind folgende:

  1. Rsync synchronisiert nur die Bytes und Datenblöcke, die sich geändert haben.
  2. Rsync bietet die Möglichkeit, diejenigen Dateien und Verzeichnisse auf dem Sicherungsserver zu überprüfen und zu löschen, die vom Hauptwebserver gelöscht wurden.
  3. Es kümmert sich beim Remote-Kopieren von Daten um Berechtigungen, Eigentumsrechte und spezielle Attribute.
  4. Es unterstützt auch das SSH-Protokoll zur verschlüsselten Datenübertragung, sodass Sie sicher sein können, dass alle Daten sicher sind.
  5. Rsync verwendet beim Übertragen von Daten Komprimierungs- und Dekomprimierungsmethoden, die weniger Bandbreite verbrauchen.

So synchronisieren Sie zwei Apache-Webserver

Fahren wir mit der Einrichtung von rsync fort, um einen Spiegel Ihres Webservers zu erstellen. Hier verwende ich zwei Server.

Hauptserver
  1. IP-Adresse: 192.168.0.100
  2. Hostname: webserver.example.com
Backup-Server
  1. IP-Adresse: 192.168.0.101
  2. Hostname: backup.example.com

Schritt 1: Installieren Sie das Rsync-Tool

In diesem Fall werden die Webserverdaten von webserver.example.com auf backup.example.com gespiegelt. Und dazu müssen wir zunächst Rsync mit Hilfe des folgenden Befehls auf beiden Servern installieren.

[root@tecmint]# yum install rsync        [On Red Hat based systems]
[root@tecmint]# apt-get install rsync    [On Debian based systems]

Schritt 2: Erstellen Sie einen Benutzer zum Ausführen von Rsync

Wir können rsync mit dem Benutzer root einrichten, aber aus Sicherheitsgründen können Sie einen unprivilegierten Benutzer auf dem Hauptwebserver erstellen, d. h. webserver.example.com, um rsync auszuführen.

[root@tecmint]# useradd tecmint
[root@tecmint]# passwd tecmint

Hier habe ich einen Benutzer „tecmint“ erstellt und dem Benutzer ein Passwort zugewiesen.

Schritt 3: Testen Sie das Rsync-Setup

Es ist an der Zeit, Ihr Rsync-Setup auf Ihrem Backup-Server (z. B. backup.example.com) zu testen. Geben Sie dazu bitte den folgenden Befehl ein.

[root@backup www]# rsync -avzhe ssh [email :/var/www/ /var/www
Beispielausgabe
[email 's password:

receiving incremental file list
sent 128 bytes  received 32.67K bytes  5.96K bytes/sec
total size is 12.78M  speedup is 389.70

Sie können sehen, dass Ihr Rsync jetzt einwandfrei funktioniert und Daten synchronisiert. Ich habe „/var/www“ zum Übertragen verwendet; Sie können den Speicherort des Ordners entsprechend Ihren Anforderungen ändern.

Schritt 4: Automatisieren Sie die Synchronisierung mit der passwortlosen SSH-Anmeldung

Jetzt sind wir mit den Rsync-Einrichtungen fertig und jetzt ist es an der Zeit, einen Cron für Rsync einzurichten. Da wir rsync mit dem SSH-Protokoll verwenden, wird ssh nach einer Authentifizierung fragen und wenn wir kein Passwort für cron angeben, wird es nicht funktionieren. Damit Cron reibungslos funktioniert, müssen wir passwortlose SSH-Anmeldungen für rsync einrichten.

Hier in diesem Beispiel mache ich es als root, um auch Dateieigentümer beizubehalten. Sie können es auch für alternative Benutzer tun.

Zuerst generieren wir einen öffentlichen und einen privaten Schlüssel mit den folgenden Befehlen auf dem Sicherungsserver (d. h. backup.example.com).

[root@backup]# ssh-keygen -t rsa -b 2048

Wenn Sie diesen Befehl eingeben, geben Sie bitte keine Passphrase ein und klicken Sie auf die Eingabetaste für Leere Passphrase, damit rsync cron kein Passwort zum Synchronisieren von Daten benötigt.

Beispielausgabe
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
9a:33:a9:5d:f4:e1:41:26:57:d0:9a:68:5b:37:9c:23 [email 
The key's randomart image is:
+--[ RSA 2048]----+
|          .o.    |
|           ..    |
|        ..++ .   |
|        o=E *    |
|       .Sooo o   |
|       =.o o     |
|      * . o      |
|     o +         |
|    . .          |
+-----------------+

Jetzt wurde unser öffentlicher und privater Schlüssel generiert und wir müssen ihn mit dem Hauptserver teilen, damit der Hauptwebserver diesen Backup-Computer erkennt und ihm die Anmeldung ermöglicht ohne beim Synchronisieren von Daten nach einem Passwort zu fragen.

[root@backup html]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email 

Versuchen Sie nun, sich mit „ssh ‚[email ‘“ am Computer anzumelden und checken Sie .ssh/authorized_keys ein.

[root@backup html]# [email 

Jetzt sind wir mit der Schlüsselfreigabe fertig. Um mehr über SSH-Passwort-lose Anmeldung zu erfahren, können Sie unseren Artikel dazu lesen.

  1. SSH-Passwortlose Anmeldung in 5 einfachen Schritten

Schritt 5: Planen Sie Cron, um die Synchronisierung zu automatisieren

Lassen Sie uns dafür einen Cron einrichten. Um einen Cron einzurichten, öffnen Sie bitte die Crontab-Datei mit dem folgenden Befehl.

[root@backup ~]# crontab –e

Es öffnet sich die Datei /etc/crontab, die Sie mit Ihrem Standardeditor bearbeiten können. Hier in diesem Beispiel schreibe ich einen Cron, der ihn alle 5 Minuten ausführt, um die Daten zu synchronisieren.

*/5        *        *        *        *   rsync -avzhe ssh [email :/var/www/ /var/www/

Der obige Cron- und Rsync-Befehl synchronisiert einfach „/var/www/“ vom Haupt-Webserver mit einem Sicherungsserver in jedem 5 Minuten. Sie können die Zeit- und Ordnerspeicherortkonfiguration entsprechend Ihren Anforderungen ändern. Wenn Sie Ihrer Kreativität freien Lauf lassen und die Befehle Rsync und Cron anpassen möchten, lesen Sie unsere ausführlicheren Artikel unter:

  1. 10 Rsync-Befehle zum Synchronisieren von Dateien/Ordnern unter Linux
  2. 11 Cron-Planungsbeispiele unter Linux