GNU/Linux >> Tutoriels Linux >  >> Linux

Comment synchroniser automatiquement deux serveurs Web sous Linux

Au fur et à mesure que vous passez d'un passionné de Linux à un administrateur/superutilisateur Linux dans un environnement de production/serveur, vous commencez à comprendre l'intérêt de travailler avec plusieurs serveurs Web.

À l'heure actuelle, vous ne voyez peut-être pas la logique d'avoir deux serveurs Web similaires fonctionnant en même temps, mais il viendra un moment où le fait d'avoir un environnement de serveur supplémentaire créera un plan de sauvegarde idéal pour votre serveur principal.

[ Vous pourriez également aimer :Lsyncd - Synchroniser les répertoires locaux avec Linux à distance ]

Pour réduire ou contrer les temps d'arrêt inévitables du site Web, un serveur Web secondaire doit être configuré pour prendre automatiquement le relais d'un serveur Web principal. Ce processus de configuration qui permet à deux serveurs Web de communiquer entre eux est appelé synchronisation de serveur.

Avantages de la synchronisation du serveur Web

Discutons de certains avantages d'avoir une opération de synchronisation de serveur Web.

  • Lorsque les données sont copiées du serveur principal vers/depuis le serveur secondaire, les autorisations, la propriété et d'autres paramètres d'attributs spéciaux de l'environnement de serveur initial sont conservés.
  • Vous aurez affaire à une bande passante moindre, car les transferts de données ciblés respectent les protocoles de transfert de données de compression et de décompression.
  • Si le serveur Web principal contient déjà des fichiers et des répertoires supprimés par l'utilisateur et que le serveur secondaire a toujours ces fichiers et répertoires en place, le processus de transfert et de synchronisation des données vérifiera et supprimera ces fichiers et répertoires pour s'assurer que le répertoire des deux serveurs les structures sont synchronisées.
  • L'action de synchronisation des deux serveurs s'applique également aux octets et blocs de données modifiés.
  • Si vous êtes préoccupé par le chiffrement des données lors de vos opérations de transfert de données de serveur à serveur, ce mécanisme de synchronisation des serveurs Web prend en charge SSH; un protocole réseau chiffré.

Conditions requises pour synchroniser deux serveurs Web

Dans ce cas, vous devez avoir deux serveurs Web en cours d'exécution et leurs noms de domaine ou adresses IP respectifs. Dans mon cas, j'utiliserai les deux serveurs suivants comme serveurs Web principal et secondaire :

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

Installation de Rsync pour synchroniser deux serveurs Web

Pour que l'opération de synchronisation de nos serveurs Web réussisse, nous allons avoir besoin de l'aide de l'outil rsync. Vous pouvez l'installer sur votre serveur de distribution Linux préféré à partir de l'une des commandes d'installation de package suivantes. L'installation de Rsync doit avoir lieu à la fois sur le serveur principal et sur le serveur secondaire que vous souhaitez synchroniser.

$ 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]    

Synchroniser deux serveurs Web à l'aide de Rsync sous Linux

Avant d'effectuer la synchronisation, assurez-vous d'identifier votre utilisateur rsync sur le serveur principal/primaire. Vous pouvez utiliser la racine déjà établie utilisateur sur votre système Linux. De mon côté, j'utiliserai le déjà existant ubuntu utilisateur.

Ensuite, vous devez identifier les répertoires de serveur que vous souhaitez synchroniser sur vos serveurs principaux et secondaires actifs. De mon côté, je vais essayer de synchroniser les répertoires du serveur Web /var/www qui existent sur les deux serveurs.

Sur mon serveur de sauvegarde/secondaire, je vais exécuter le rsync suivant commande qui pointe et relie son /var/www répertoire avec celui du serveur principal/primaire.

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

Selon le rsync exécuté commande de la capture d'écran ci-dessus, les fichiers et répertoires qui existaient sur le serveur principal ont été synchronisés et copiés sur le serveur de sauvegarde.

[ Vous pourriez également aimer :Rsync Afficher la progression lors de la synchronisation des fichiers sous Linux ]

Synchronisation automatique de deux serveurs Web à l'aide de Rsync sous Linux

Vous n'avez pas besoin de synchroniser manuellement vos serveurs Web à chaque fois. Pour automatiser cette opération de synchronisation, envisagez les approches en deux étapes suivantes :

Étape 1 :Configurer la connexion SSH sans mot de passe

Sur votre serveur de sauvegarde/secondaire, vous avez besoin d'une clé publique et privée. Vous pouvez en générer un à partir de la commande suivante :

$ sudo ssh-keygen -t rsa -b 2048 

N'oubliez pas d'exécuter la commande ci-dessus sur votre serveur de sauvegarde.

N'oubliez pas non plus d'ignorer la configuration d'une phrase secrète en appuyant sur [Entrée ] pour laisser le champ de la phrase secrète vide.

Ensuite, ces clés publiques et privées générées doivent être copiées sur le serveur principal/principal à partir du serveur de sauvegarde. Utilisez une commande similaire à la suivante pour atteindre cet objectif :

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

Accédez maintenant au serveur principal et confirmez les clés nouvellement ajoutées sur votre serveur principal :

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

Nous en avons maintenant terminé avec le partage des fichiers de clé requis avec nos deux serveurs (serveurs principal et secondaire).

Étape 2 :Synchroniser automatiquement deux serveurs Web via une tâche Cron

Sur le serveur de sauvegarde/secondaire, configurez le fichier crontab pour la synchronisation automatique du serveur :

$ sudo crontab -e

Il vous sera demandé de choisir un éditeur pour ouvrir le fichier crontab :

Au bas du fichier ouvert, ajoutez une planification de tâche cron pour synchroniser vos serveurs :

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

Conformément à l'entrée de tâche cron ci-dessus sur le fichier crontab, les serveurs Web principal et principal se synchroniseront automatiquement toutes les cinq minutes.

Une fois que vous avez enregistré vos modifications et quitté l'éditeur, la tâche cron doit s'installer et s'activer.

$ sudo crontab -e

La synchronisation automatique de votre serveur Web principal avec un serveur Web secondaire vous évite d'avoir à gérer les problèmes d'indisponibilité du serveur, les erreurs, et crée également le plan de sauvegarde parfait pour un serveur de site Web productif et à fort trafic que vous souhaitez rester actif.


Linux
  1. Comment joindre votre serveur Linux au projet de pool NTP

  2. Comment installer le serveur Web Nginx sur Linux

  3. Voici comment fonctionne un serveur Linux

  4. Comment installer Virtualization Linux Server

  5. Les meilleurs serveurs Web Linux

Comment synchroniser automatiquement des fichiers entre deux serveurs Linux

Comment installer le serveur Web Nginx sur Alpine Linux

Comment installer le serveur Web Apache sur Alpine Linux

Comment SSH au serveur via Linux

Comment utiliser Rsync pour copier/synchroniser des fichiers entre des serveurs

Comment configurer un serveur domestique