So synchronisieren Sie zwei Apache-Webserver/Websites mit Rsync
Es gibt so viele Tutorials im Internet, wie Sie Ihre Webdateien mit verschiedenen Methoden spiegeln oder sichern können. Hier erstelle ich diesen Artikel als 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:
- Rsync synchronisiert nur die Bytes und Datenblöcke, die sich geändert haben.
- 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.
- Es kümmert sich beim Remote-Kopieren von Daten um Berechtigungen, Eigentumsrechte und spezielle Attribute.
- Es unterstützt auch das SSH-Protokoll zur verschlüsselten Datenübertragung, sodass Sie sicher sein können, dass alle Daten sicher sind.
- 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
- IP-Adresse: 192.168.0.100
- Hostname: webserver.example.com
Backup-Server
- IP-Adresse: 192.168.0.101
- 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 nichtprivilegierten 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.
- 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:
- 10 Rsync-Befehle zum Synchronisieren von Dateien/Ordnern unter Linux
- 11 Cron-Planungsbeispiele unter Linux