Cómo sincronizar dos servidores web/sitios web Apache mediante Rsync

Cómo sincronizar dos servidores web/sitios web Apache mediante Rsync

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

Sync Apache Web Server  Sincronizar el servidor web Apache Sync Two Apache Web Server

El propósito de crear un espejo de su Web Server. con Rsync. es si su servidor web principal falla, su servidor de respaldo puede tomar el control 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 eficaz para las pequeñas y medianas empresas web.

Ventajas de sincronizar servidores web

Las principales ventajas de crear una copia de seguridad de un servidor web con rsync son los siguientes:

  1. Rsync sincroniza solo los bytes y bloques de datos que han cambiado.
  2. Rsync tiene la capacidad de verificar y eliminar esos archivos y directorios en el servidor de respaldo que se han eliminado del servidor web principal.
  3. Se encarga de los permisos, las propiedades y los atributos especiales mientras copia datos de forma remota.
  4. También es compatible con el protocolo SSH para transferir datos en un cifrado de manera que pueda estar seguro de que todos los datos están seguros.
  5. Rsync utiliza un método de compresión y descompresión mientras transfiere datos que consumen menos ancho de banda.

Cómo sincronizar dos archivos Apache Servidores web

Procedamos a configurar 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. : webserver.example.com

Backup Server

  1. Dirección IP. 192.168.0.101
  2. Nombre de host. : backup.example.com

Paso 1: Instale la herramienta Rsync

Aquí, en este caso, los datos del servidor web de webserver.example.com. se reflejarán en copia de seguridad.ejemplo.com. Y para hacerlo primero, necesitamos instalar Rsync. en ambos servidores con la ayuda del siguiente comando.

[[email protected]] # yum install rsync [En Red Hat. sistemas basados ​​en] [[email protected]] # apt-get install rsync [En sistemas basados ​​en Debian. Paso 2: Cree un usuario para ejecutar Rsync freestar.config.enabled_slots.push ( LocationName: “tecmint_incontent”, slotId: “tecmint_incontent”);

Podemos configurar rsync con un usuario root. pero por razones de seguridad, puede crear un usuario sin privilegios en el servidor web principal, es decir, webserver.example.com. para ejecutar rsync.

[[email protected]] # useradd tecmint [[email protected]] # passwd tecmint

Aquí he creado un usuario “ tecmint. ”y le asignó una contraseña al usuario.

Paso 3: Pruebe la configuración de Rsync

Es hora de probar su configuración de rsync en su servidor de respaldo (es decir, backup.example.com. y para hacerlo, escriba el siguiente comando.

[[email protected] www] # rsync-avzhe ssh [correo electrónico protegido]:/var/www//var/www Salida de muestra Contraseña de [correo electrónico protegido]: recepción de la lista de archivos incrementales enviados 128 bytes recibidos 32,67 K bytes 5,96 K bytes/seg el tamaño total es La aceleración de 12.78M es 389.70

Puede ver que su rsync ahora está funcionando absolutamente bien y sincronizando datos. He utilizado “/var/www. para transferir; puede cambiar la ubicación de la carpeta de acuerdo con sus necesidades.

Paso 4: Automatice 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 utilizar rsync con el protocolo SSH. ssh pedirá autenticación y si no le proporcionamos una contraseña a cron, no funcionará. Para que cron funcione sin problemas, necesitamos configurar inicios de sesión ssh sin contraseña. para rsync.

Aquí, en este ejemplo, lo estoy haciendo como root. para preservar las propiedades de los archivos. también, también puede hacerlo para usuarios alternativos.

Primero, generaremos una clave pública. y privada. con los siguientes comandos en el servidor de copias de seguridad (es decir, backup.example.com. ).

[[email protected]] # ssh-keygen-t rsa-b 2048

Cuando ingrese este comando, no proporcione la contraseña y haga clic en Enter para Vaciar contraseña. para que rsync cron no necesite ninguna contraseña para sincronizar datos.

Ejemplo de salida Generando un par de claves rsa pública/privada. Ingrese el archivo en el cual guardar la clave (/root/.ssh/id_rsa): Ingrese la frase de contraseña (vacío si no hay frase de contraseña): Ingrese la misma frase de contraseña 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 de la clave es: 9a: 33: a9: 5d: f4: e1: 41: 26: 57: d0: 9a: 68: 5b: 37: 9c: 23 [protegido por correo electrónico] La imagen aleatoria de la clave es: +-[ RSA 2048]—-+ | .o. | | .. | | .. ++. | | o = E * | | .Sooo o | | = .o o | | *. o | | o + | | . . | +—————–+

Ahora, nuestra clave Pública. y Privada. ha sido generada y tendremos para compartirlo con el servidor principal para que el servidor web principal reconozca esta máquina de respaldo y le permita iniciar sesión sin pedir ninguna contraseña mientras sincroniza los datos.

[[email protected] 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 verifique .ssh/allowed_keys.

[[email protected] html] # [email protected]

Ahora, hemos terminado con las claves para compartir. Para obtener más información sobre inicio de sesión sin contraseña SSH. puede leer nuestro artículo al respecto.

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

Paso 5: Programar cron para automatizar la sincronización

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

[[email protected] ~] # crontab –e

Se abrirá el archivo/etc/crontab para editarlo 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 [email protected]:/var/www//var/www/

El comando cron y rsync anterior simplemente sincroniza “/var/www/” desde el servidor web. principal a un servidor de respaldo. en cada 5 minutos. Puede cambiar la configuración de la ubicación de la carpeta y la hora según sus necesidades. Para ser más creativo y personalizar con los comandos Rsync. y Cron. puede consultar nuestros artículos más detallados en: