Cómo sincronizar dos servidores web de Apache/sitios web utilizando RSYNC

Cómo sincronizar dos servidores web de Apache/sitios web utilizando RSYNC

Hay tantos tutoriales disponibles en la web para reflejar o tomar una copia de seguridad de sus archivos web con diferentes métodos, aquí estoy creando este artículo para mi referencia futura y aquí usaré un comando muy simple y versátil de Linux Para crear una copia de seguridad de su sitio web. Este tutorial lo ayudará a sincronizar datos entre sus dos servidores web con "Rsync".

Sincronizar dos servidores web Apache

El propósito de crear un espejo de tu Servidor web con Rsync Es si su servidor web principal falla, su servidor de copia de seguridad puede hacerse cargo para reducir el tiempo de inactividad de su sitio web. Esta forma de crear una copia de seguridad de un servidor web es muy buena y efectiva para empresas web pequeñas y medianas.

Ventajas de sincronizar servidores web

Las principales ventajas de crear una copia de seguridad de un servidor web con RSYNC son las siguientes:

  1. RSYNC sincroniza solo aquellos bytes y bloques de datos que han cambiado.
  2. RSYNC tiene la capacidad de verificar y eliminar esos archivos y directorios en Backup Server que se han eliminado del servidor web principal.
  3. Se encarga de los permisos, propietarios y atributos especiales al copiar datos de forma remota.
  4. También es compatible con el protocolo SSH para transferir datos de manera encriptada para que tenga la seguridad de que todos los datos son seguros.
  5. RSYNC utiliza el método de compresión y descompresión mientras se transfiere datos que consume menos ancho de banda.

Cómo sincronizar dos servidores web Apache

Proceda con la configuración de RSYNC para crear un espejo de su servidor web. Aquí, usaré dos servidores.

Servidor principal
  1. Dirección IP: 192.168.0.100
  2. Nombre de host: Servidor web.ejemplo.comunicarse
Servidor de respaldo
  1. Dirección IP: 192.168.0.101
  2. Nombre de host: respaldo.ejemplo.comunicarse

Paso 1: Instale la herramienta RSYNC

Aquí en este caso los datos del servidor web de Servidor web.ejemplo.comunicarse se reflejará en respaldo.ejemplo.comunicarse. Y para hacerlo primero, necesitamos instalar Rsync en ambos del servidor con la ayuda del siguiente comando.

[[correo electrónico protegido]]# yum install rsync [en sombrero rojo sistemas basados] [[correo electrónico protegido]]# apt-get install rsync [en Debian sistemas basados]

Paso 2: Cree un usuario para ejecutar RSYNC

Podemos configurar rsync con raíz Usuario, pero por razones de seguridad, puede crear un usuario no privilegiado en el servidor web principal I.mi Servidor web.ejemplo.comunicarse para ejecutar rsync.

[[Correo electrónico protegido]]# userAdd tecMint [[correo electrónico protegido]]# passwd tecMint

Aquí he creado un usuario "tecmenta"Y asignó una contraseña al usuario.

Paso 3: Prueba de configuración de RSYNC

Es hora de probar su configuración de RSYNC en su servidor de copia de seguridad (yo.mi. respaldo.ejemplo.comunicarse) y para hacerlo, escriba el siguiente comando.

[[Correo electrónico protegido] www]# rsync -avzhe ssh [correo electrónico protegido]:/var/www//var/www
Salida de muestra
[Correo electrónico protegió la contraseña: Recibir la lista de archivos incrementales enviados 128 bytes recibidos 32.67k bytes 5.96k bytes/seg El tamaño total es 12.78m Speedup es 389.70

Puede ver que su RSYNC ahora funciona absolutamente bien y sincronizando datos. He usado "/var/www" transferir; Puede cambiar la ubicación de la carpeta de acuerdo con sus necesidades.

Paso 4: automatizar la sincronización con el inicio de sesión sin contraseña SSH

Ahora, hemos terminado con las configuraciones de RSYNC y ahora es el momento de configurar un cron para rsync. Como vamos a usar rsync con Ssh Protocolo, SSH solicitará autenticación y si no le proporcionaremos una contraseña al cron, no funcionará. Para trabajar sin problemas Cron, necesitamos configurarnos inicios de sesión ssh sin contraseña para rsync.

Aquí en este ejemplo, lo estoy haciendo como raíz para preservar Propietarios de archivos Además, también puede hacerlo para usuarios alternativos.

Primero, generaremos un público y privado clave con los siguientes comandos en el servidor de copias de seguridad (i.mi. respaldo.ejemplo.comunicarse).

[[correo electrónico protegido]]# ssh -keygen -t rsa -b 2048

Cuando ingrese este comando, no proporcione frase de pases y haga clic en Ingresar para Frase de pases vacío para que RSYNC CRON no necesite ninguna contraseña para sincronizar datos.

Salida de muestra
Generación de pares de claves RSA públicas/privadas. Ingrese el archivo en el que guardar la clave (/root/.SSH/ID_RSA): ingrese la frase de pases (vacía para no frase de pases): ingrese la misma frase de pases nuevamente: su identificación se ha guardado en/root/.ssh/id_rsa. Su clave pública se ha guardado en /root /.ssh/id_rsa.pub. La huella digital clave es: 9a: 33: A9: 5d: f4: e1: 41: 26: 57: d0: 9a: 68: 5b: 37: 9c: 23 [correo electrónico protegido] La imagen Randomart de la llave es: +-[[[ RSA 2048] ----+ | .O. | |… | | ++ . | | O = E * | | .Sooo o | | =.o o | | * . o | | O + | |… | +-----------------+

Ahora, nuestro Público y Privado Se ha generado la clave y tendremos que compartirlo con el servidor principal para que el servidor web principal reconozca esta máquina de copia de seguridad y le permita iniciar sesión sin pedir ninguna contraseña al sincronizar datos.

[[correo electrónico protegido] html]# ssh-copy-id -i /root /.ssh/id_rsa.Pub [correo electrónico protegido]

Ahora intente iniciar sesión en la máquina, con "ssh '[correo electrónico protegido]'", Y check in .ssh/autorized_keys.

[[correo electrónico protegido] html]# [correo electrónico protegido]

Ahora, hemos terminado compartiendo claves. Saber más en profundidad sobre SSH contraseña menos inicio de sesión, Puedes leer nuestro artículo sobre él.

  1. SSH Inicie sesión sin contraseña en 5 sencillos pasos

Paso 5: Programe cron para automatizar la sincronización

Configuremos un cron para esto. Para configurar un cron, abra el archivo CRONTAB con el siguiente comando.

[[correo electrónico protegido] ~]# crontab -e

Se abrirá el archivo /etc /crontab para editar con su editor predeterminado. Aquí en este ejemplo, estoy escribiendo un cron para ejecutarlo cada 5 minutos para sincronizar los datos.

*/5 * * * * rsync -avzhe ssh [correo electrónico protegido]:/var/www//var/www/

El comando cron y rsync anterior simplemente sincronizando "/var/www/"De la principal Servidor web a un servidor de respaldo en cada 5 minutos. Puede cambiar la configuración de ubicación de tiempo y carpeta de acuerdo con sus necesidades. Ser más creativo y personalizar con Rsync y Cron Comando, puede consultar nuestros artículos más detallados en:

  1. 10 comandos RSYNC para sincronizar archivos/carpetas en Linux
  2. 11 ejemplos de programación de Cron en Linux