Zoeken op website

Hoe twee Apache-webservers/websites te synchroniseren met Rsync


Er zijn zoveel tutorials beschikbaar op internet om uw webbestanden op verschillende manieren te spiegelen of er een back-up van te maken. Hier maak ik dit artikel voor toekomstig gebruik en hier gebruik ik een zeer eenvoudige en veelzijdige opdracht van Linux om een back-up van uw website te maken. Deze tutorial helpt u bij het synchroniseren van gegevens tussen uw twee webservers met “Rsync“.

Het doel van het maken van een spiegel van uw webserver met Rsync is dat als uw hoofdwebserver uitvalt, uw back-upserver het kan overnemen om de downtime van uw website te verminderen. Deze manier om een back-up van een webserver te maken is zeer goed en effectief voor kleine en middelgrote webbedrijven.

Voordelen van het synchroniseren van webservers

De belangrijkste voordelen van het maken van een webserverback-up met rsync zijn als volgt:

  1. Rsync synchroniseert alleen de bytes en gegevensblokken die zijn gewijzigd.
  2. Rsync heeft de mogelijkheid om die bestanden en mappen op de back-upserver te controleren en te verwijderen die van de hoofdwebserver zijn verwijderd.
  3. Het zorgt voor machtigingen, eigendommen en speciale kenmerken terwijl gegevens op afstand worden gekopieerd.
  4. Het ondersteunt ook het SSH-protocol om gegevens op een gecodeerde manier over te dragen, zodat u er zeker van kunt zijn dat alle gegevens veilig zijn.
  5. Rsync maakt gebruik van compressie- en decompressiemethoden tijdens het overbrengen van gegevens die minder bandbreedte verbruiken.

Hoe twee Apache-webservers te synchroniseren

Laten we doorgaan met het instellen van rsync om een spiegel van uw webserver te maken. Hier gebruik ik twee servers.

Hoofdserver
  1. IP-adres: 192.168.0.100
  2. Hostnaam: webserver.example.com
Back-upserver
  1. IP-adres: 192.168.0.101
  2. Hostnaam: backup.example.com

Stap 1: Installeer Rsync Tool

In dit geval worden de webservergegevens van webserver.example.com gespiegeld op backup.example.com. En om dit eerst te doen, moeten we Rsync op beide servers installeren met behulp van de volgende opdracht.

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

Stap 2: Maak een gebruiker aan om Rsync uit te voeren

We kunnen rsync instellen met een root-gebruiker, maar om veiligheidsredenen kunt u een gebruiker zonder rechten aanmaken op de hoofdwebserver, d.w.z. webserver.example.com om rsync uit te voeren.

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

Hier heb ik een gebruiker “tecmint” aangemaakt en een wachtwoord aan de gebruiker toegewezen.

Stap 3: Test Rsync-installatie

Het is tijd om uw rsync-instellingen op uw back-upserver (d.w.z. backup.example.com) te testen en typ hiervoor de volgende opdracht.

[root@backup www]# rsync -avzhe ssh [email :/var/www/ /var/www
Voorbeelduitvoer
[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

U kunt zien dat uw rsync nu absoluut goed werkt en gegevens synchroniseert. Ik heb “/var/www” gebruikt om over te zetten; u kunt de maplocatie naar wens wijzigen.

Stap 4: Automatiseer synchronisatie met SSH-wachtwoordloos inloggen

Nu zijn we klaar met het instellen van rsync en nu is het tijd om een cron voor rsync in te stellen. Omdat we rsync gaan gebruiken met het SSH protocol, zal ssh om authenticatie vragen en als we geen wachtwoord voor cron opgeven, zal het niet werken. Om cron soepel te laten werken, moeten we wachtwoordloze ssh-aanmeldingen instellen voor rsync.

Hier in dit voorbeeld doe ik het als root om bestandseigendom ook te behouden. Je kunt het ook voor alternatieve gebruikers doen.

Eerst genereren we een openbare en privé sleutel met de volgende opdrachten op de back-upserver (d.w.z. backup.example.com).

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

Wanneer u deze opdracht invoert, geef dan geen wachtwoordzin op en klik op Enter voor Lege wachtwoordzin zodat rsync cron geen wachtwoord nodig heeft voor het synchroniseren van gegevens.

Voorbeelduitvoer
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 +         |
|    . .          |
+-----------------+

Nu is onze openbare en privé sleutel gegenereerd en zullen we deze moeten delen met de hoofdserver, zodat de hoofdwebserver deze back-upmachine zal herkennen en hem zal toestaan in te loggen zonder een wachtwoord te vragen tijdens het synchroniseren van gegevens.

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

Probeer nu in te loggen op de machine met “ssh ‘[email ‘”, en check in .ssh/authorized_keys.

[root@backup html]# [email 

Nu zijn we klaar met het delen van sleutels. Voor meer informatie over SSH-wachtwoord zonder inloggen kunt u ons artikel hierover lezen.

  1. SSH Wachtwoordloos Inloggen in 5 eenvoudige stappen

Stap 5: Plan Cron om de synchronisatie te automatiseren

Laten we hiervoor een cron instellen. Om een cron in te stellen, opent u het crontab-bestand met de volgende opdracht.

[root@backup ~]# crontab –e

Het opent het bestand /etc/crontab om te bewerken met uw standaardeditor. Hier In dit voorbeeld schrijf ik een cron om deze elke 5 minuten uit te voeren om de gegevens te synchroniseren.

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

De bovenstaande cron- en rsync-opdracht synchroniseert eenvoudigweg “/var/www/” van de hoofd-webserver naar een back-upserver in elke 5 minuten. U kunt de configuratie van de tijd en maplocatie naar wens wijzigen. Als u creatiever wilt zijn en aanpassingen wilt maken met de opdrachten Rsync en Cron, kunt u onze meer gedetailleerde artikelen bekijken op:

  1. 10 Rsync-opdrachten om bestanden/mappen te synchroniseren in Linux
  2. 11 Cron Scheduling-voorbeelden in Linux