GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo sincronizar dos servidores web en Linux automáticamente

A medida que pasa de ser un entusiasta de Linux a un administrador/superusuario de Linux en un entorno de producción/servidor, comienza a ver el sentido de trabajar con más de un servidor web.

En este momento, es posible que no vea la lógica de tener dos servidores web similares ejecutándose al mismo tiempo, pero llegará un momento en que tener un entorno de servidor adicional crea un plan de respaldo ideal para su servidor principal.

[ También te puede interesar:Lsyncd:sincroniza directorios locales con Linux remoto]

Para reducir o contrarrestar el inevitable tiempo de inactividad del sitio web, se debe configurar un servidor web secundario para que tome automáticamente el control de un servidor web principal. Este proceso de configuración que permite que dos servidores web se comuniquen entre sí se denomina sincronización de servidor.

Ventajas de la sincronización del servidor web

Discutamos algunas ventajas de tener una operación de sincronización del servidor web.

  • Cuando los datos se copian desde el servidor principal hacia/desde el servidor secundario, se conservan los permisos, la propiedad y otras configuraciones de atributos especiales del entorno del servidor inicial.
  • Trabajará con un ancho de banda menor ya que las transferencias de datos dirigidas se adhieren a los protocolos de transferencia de datos de compresión y descompresión.
  • Si el servidor web principal ya tiene archivos y directorios eliminados por el usuario y el servidor secundario todavía tiene estos archivos y directorios en su lugar, el proceso de sincronización y transferencia de datos verificará y eliminará esos archivos y directorios para garantizar que el directorio de los dos servidores las estructuras están sincronizadas.
  • La acción de sincronización de los dos servidores también se aplica a los bytes y bloques de datos modificados.
  • Si le preocupa el cifrado de datos durante sus operaciones de transferencia de datos de servidor a servidor, este mecanismo de sincronización de servidores web es compatible con SSH; un protocolo de red encriptado.

Requisitos para sincronizar dos servidores web

En este caso, debe tener dos servidores web en ejecución y sus respectivos nombres de dominio o direcciones IP. En mi caso, utilizaré los siguientes dos servidores como servidor web principal y secundario:

Main server IP address: 3.135.207.198
Secondary server IP address: 18.118.208.79

Instalación de Rsync para sincronizar dos servidores web

Para que la operación de sincronización de nuestros servidores web sea exitosa, vamos a necesitar la ayuda de la herramienta rsync. Puede instalarlo en su servidor de distribución de Linux preferido desde cualquiera de los siguientes comandos de instalación de paquetes. La instalación de Rsync debe realizarse tanto en el servidor principal como en el servidor secundario que desea sincronizar.

$ sudo apt-get install rsync     [On Debian, Ubuntu and Mint]
$ sudo yum install rsync         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a sys-apps/rsync  [On Gentoo Linux]
$ sudo pacman -S rsync           [On Arch Linux]
$ sudo zypper install rsync      [On OpenSUSE]    

Sincronización de dos servidores web usando Rsync en Linux

Antes de realizar la sincronización, asegúrese de identificar a su usuario de rsync en el servidor principal/principal. Puede utilizar la raíz ya establecida usuario en su sistema Linux. Por mi parte, usaré el ubuntu ya existente usuario.

A continuación, debe identificar los directorios del servidor que desea sincronizar en sus servidores principal y secundario activos. Por mi parte, intentaré sincronizar los directorios del servidor web /var/www que existen en ambos servidores.

En mi servidor de respaldo/secundario, ejecutaré el siguiente rsync comando que apunta y vincula su /var/www directorio con el del servidor principal/principal.

$ sudo rsync -avzhe ssh [email protected]:/var/www/ /var/www/

Según el rsync ejecutado comando de la captura de pantalla anterior, los archivos y directorios que existían en el servidor principal se han sincronizado y copiado en el servidor de respaldo.

[ También te puede interesar:Rsync muestra el progreso al sincronizar archivos en Linux ]

Sincronización automática de dos servidores web mediante Rsync en Linux

No necesita sincronizar cada vez sus servidores web manualmente. Para automatizar esta operación de sincronización, considere los siguientes enfoques de dos pasos:

Paso 1:Configuración del inicio de sesión sin contraseña SSH

En su servidor de respaldo/secundario, necesita una clave pública y privada. Puede generar uno con el siguiente comando:

$ sudo ssh-keygen -t rsa -b 2048 

Recuerde ejecutar el comando anterior en su servidor de respaldo.

Además, recuerde omitir la configuración de una frase de contraseña presionando [Enter ] para dejar el campo de contraseña en blanco.

A continuación, estas claves públicas y privadas generadas deben copiarse al servidor primario/principal desde el servidor de respaldo. Use un comando similar al siguiente para lograr este objetivo:

$ sudo ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

Ahora acceda al servidor principal y confirme las claves recién agregadas en su servidor principal:

$ ssh [email protected]
$ sudo nano .ssh/rsa

Ya hemos terminado de compartir los archivos clave requeridos con nuestros dos servidores (servidores primario y secundario).

Paso 2:Sincronización automática de dos servidores web a través de Cron Job

En el servidor de respaldo/secundario, configure el archivo crontab para la sincronización automática del servidor:

$ sudo crontab -e

Se le pedirá que elija un editor para abrir el archivo crontab:

En la parte inferior del archivo abierto, agregue un cronograma de trabajo cron para sincronizar sus servidores:

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

Según la entrada del trabajo cron anterior en el archivo crontab, los servidores web principal y principal se sincronizarán automáticamente cada cinco minutos.

Una vez que guarde sus cambios y salga del editor, el trabajo cron debería instalarse y activarse.

$ sudo crontab -e

La sincronización automática de su servidor web principal con un servidor web secundario le evita tener que lidiar con problemas de tiempo de inactividad del servidor, errores y también crea el plan de respaldo perfecto para un servidor de sitio web productivo y con mucho tráfico que desea permanecer activo.


Linux
  1. Cómo unir su servidor Linux al proyecto de grupo NTP

  2. Cómo instalar el servidor web Nginx en Linux

  3. Así es como funciona un servidor Linux

  4. Cómo instalar un servidor Linux de virtualización

  5. Los mejores servidores Web Linux

Cómo Rsync archivos entre dos servidores Linux automáticamente

Cómo instalar el servidor web Nginx en Alpine Linux

Cómo instalar el servidor web Apache en Alpine Linux

Cómo SSH al servidor a través de Linux

Cómo usar Rsync para copiar/sincronizar archivos entre servidores

Cómo configurar un servidor doméstico