Com sincronitzar dos servidors web/llocs web Apache mitjançant Rsync


Hi ha tants tutorials disponibles al web per reflectir o fer una còpia de seguretat dels vostres fitxers web amb diferents mètodes, aquí estic creant aquest article per a la meva futura referència i aquí faré servir un comandament de Linux molt senzill i versàtil per crear un còpia de seguretat del vostre lloc web. Aquest tutorial us ajudarà a sincronitzar dades entre els vostres dos servidors web amb Rsync.

L'objectiu de crear un mirall del vostre servidor web amb Rsync és que si el vostre servidor web principal falla, el vostre servidor de còpia de seguretat pot fer-se càrrec per reduir el temps d'inactivitat del vostre lloc web. Aquesta manera de crear una còpia de seguretat del servidor web és molt bona i eficaç per a empreses web petites i mitjanes.

Avantatges de la sincronització de servidors web

Els principals avantatges de crear una còpia de seguretat del servidor web amb rsync són els següents:

  1. Rsync només sincronitza els bytes i els blocs de dades que han canviat.
  2. Rsync té la capacitat de comprovar i suprimir els fitxers i directoris del servidor de còpia de seguretat que s'han suprimit del servidor web principal.
  3. S'encarrega dels permisos, les propietats i els atributs especials mentre copia les dades de manera remota.
  4. També admet el protocol SSH per transferir dades de manera xifrada, de manera que tingueu la seguretat que totes les dades estan segures.
  5. Rsync utilitza mètodes de compressió i descompressió mentre transfereix dades que consumeixen menys amplada de banda.

Com sincronitzar dos servidors web Apache

Continuem amb la configuració de rsync per crear un mirall del vostre servidor web. Aquí, faré servir dos servidors.

  1. Adreça IP: 192.168.0.100
  2. Nom d'amfitrió: servidor web.example.com

  1. Adreça IP: 192.168.0.101
  2. Nom d'amfitrió: backup.example.com

En aquest cas, les dades del servidor web de webserver.example.com es reflectiran a backup.example.com. I per fer-ho primer, hem d'instal·lar Rsync tant al servidor amb l'ajuda de la següent comanda.

 yum install rsync        [On Red Hat based systems]
 apt-get install rsync    [On Debian based systems]

Podem configurar rsync amb l'usuari root, però per motius de seguretat, podeu crear un usuari sense privilegis al servidor web principal, és a dir, webserver.example.com per executar rsync.

 useradd tecmint
 passwd tecmint

Aquí he creat un usuari tecmint i he assignat una contrasenya a l'usuari.

És hora de provar la configuració de rsync al servidor de còpia de seguretat (és a dir, backup.example.com) i per fer-ho, escriviu l'ordre següent.

 rsync -avzhe ssh [email :/var/www/ /var/www
[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

Podeu veure que el vostre rsync ara funciona perfectament i sincronitza dades. He utilitzat “/var/www” per transferir; podeu canviar la ubicació de la carpeta segons les vostres necessitats.

Ara hem acabat amb les configuracions de rsync i ara és hora de configurar un cron per a rsync. Com que farem servir rsync amb el protocol SSH, ssh ens demanarà autenticació i si no proporcionem una contrasenya per cronar, no funcionarà. Per tal de funcionar amb cron sense problemes, hem de configurar els inicis de sessió ssh sense contrasenya per a rsync.

Aquí, en aquest exemple, ho faig com a root per preservar la propietat dels fitxers també, també ho podeu fer per a usuaris alternatius.

Primer, generarem una clau pública i privada amb les ordres següents al servidor de còpies de seguretat (és a dir, backup.example.com).

 ssh-keygen -t rsa -b 2048

Quan introduïu aquesta ordre, no proporcioneu una frase de contrasenya i feu clic a Intro per a la frase de contrasenya buida, de manera que rsync cron no necessitarà cap contrasenya per sincronitzar les dades.

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

Ara, s'ha generat la nostra clau pública i privada i haurem de compartir-la amb el servidor principal perquè el servidor web principal reconegui aquesta màquina de còpia de seguretat i li permeti iniciar sessió sense demanar cap contrasenya mentre sincronitzen les dades.

 ssh-copy-id -i /root/.ssh/id_rsa.pub [email 

Ara proveu d'iniciar sessió a la màquina, amb ssh '[email ' i registreu .ssh/authorized_keys.

 [email 

Ara hem acabat amb les claus de compartir. Per obtenir més informació sobre l'inici de sessió SSH sense contrasenya, podeu llegir el nostre article sobre això.

  1. Inici de sessió SSH sense contrasenya en 5 senzills passos

Configurem un cron per a això. Per configurar un cron, obriu el fitxer crontab amb l'ordre següent.

 crontab –e

Obrirà el fitxer /etc/crontab per editar-lo amb el vostre editor predeterminat. Aquí En aquest exemple, estic escrivint un cron per executar-lo cada 5 minuts per sincronitzar les dades.

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

L'ordre cron i rsync anterior només sincronitza /var/www/ del servidor web principal a un servidor de còpia de seguretat cada 5 minuts. Podeu canviar l'hora i la configuració de la ubicació de la carpeta segons les vostres necessitats. Per ser més creatiu i personalitzar amb les ordres Rsync i Cron, podeu consultar els nostres articles més detallats a:

  1. 10 ordres Rsync per sincronitzar fitxers/carpetes a Linux
  2. 11 exemples de programació de Cron a Linux