Comment synchroniser deux serveurs Web / sites Web Apache à l'aide de RSYNC
- 3271
- 643
- Maxence Arnaud
Il y a tellement de didacticiels disponibles sur le Web pour refléter ou prendre une sauvegarde de vos fichiers Web avec différentes méthodes, je crée ici cet article pour ma future référence et j'utiliserai ici une commande très simple et polyvalente de Linux Pour créer une sauvegarde de votre site Web. Ce tutoriel vous aidera à synchroniser les données entre vos deux serveurs Web avec «Rsync".
Sync de deux serveur Web ApacheLe but de créer un miroir de votre Serveur Web avec Rsync est si votre serveur Web principal échoue, votre serveur de sauvegarde peut prendre le relais pour réduire les temps d'arrêt de votre site Web. Cette façon de créer une sauvegarde du serveur Web est très bonne et efficace pour les petites et moyennes entreprises Web.
Avantages de la synchronisation des serveurs Web
Les principaux avantages de la création d'une sauvegarde de serveur Web avec RSYNC sont les suivants:
- RSYNC ne synchronise que les octets et les blocs de données qui ont changé.
- RSYNC a la possibilité de vérifier et de supprimer ces fichiers et répertoires sur le serveur de sauvegarde qui ont été supprimés du serveur Web principal.
- Il s'occupe des autorisations, des propriétés et des attributs spéciaux tout en copiant les données à distance.
- Il prend également en charge le protocole SSH pour transférer des données de manière cryptée afin que vous soyez assuré que toutes les données sont sûres.
- RSYNC utilise la méthode de compression et de décompression lors du transfert de données qui consomme moins de bande passante.
Comment synchroniser deux serveurs Web Apache
Procédons avec la configuration de RSYNC pour créer un miroir de votre serveur Web. Ici, j'utiliserai deux serveurs.
Serveur principal
- Adresse IP: 192.168.0.100
- Nom d'hôte: serveur Web.exemple.com
Serveur de sauvegarde
- Adresse IP: 192.168.0.101
- Nom d'hôte: sauvegarde.exemple.com
Étape 1: Installez l'outil RSYNC
Ici dans ce cas, les données du serveur Web de serveur Web.exemple.com sera reflété sur sauvegarde.exemple.com. Et pour le faire d'abord, nous devons installer Rsync sur le serveur à l'aide de la commande suivante.
[[Protégé par e-mail]] # yum installer rsync [sur chapeau rouge Systèmes basés] [[Protégé par e-mail]] # apt-get install rsync [sur Debian Systèmes basés
Étape 2: Créez un utilisateur pour exécuter RSYNC
Nous pouvons configurer RSYNC avec racine Utilisateur, mais pour des raisons de sécurité, vous pouvez créer un utilisateur improvisé sur le serveur Web principal I.e serveur Web.exemple.com Pour exécuter rsync.
[[Protégé par e-mail]] # userAdd Tecmint [[Protégé par e-mail]] # Passwd Tecmint
Ici, j'ai créé un utilisateur "Tecmint»Et a attribué un mot de passe à l'utilisateur.
Étape 3: Testez la configuration RSYNC
Il est temps de tester votre configuration RSYNC sur votre serveur de sauvegarde (i.e. sauvegarde.exemple.com) Et pour ce faire, veuillez taper la commande suivante.
[[Protégé par e-mail] www] # RSYNC -avzhe SSH [Protégé par e-mail]: / var / www / / var / www
Échantillon de sortie
Le mot de passe de [Email Protected]: recevoir la liste de fichiers incrémentiels envoyés 128 octets reçus 32.67k octets 5.La taille totale des octets 96k / sec est de 12.La vitesse de 78m est de 389.70
Vous pouvez voir que votre RSYNC fonctionne maintenant très bien et synchronise des données. J'ai utilisé "/ var / www" transférer; Vous pouvez modifier l'emplacement du dossier en fonction de vos besoins.
Étape 4: Automatiser la synchronisation avec la connexion sans mot de passe SSH
Maintenant, nous avons terminé avec des configurations RSync et maintenant il est temps de configurer un cron pour rsync. Comme nous allons utiliser RSync avec Ssh Protocole, SSH demandera l'authentification et si nous ne fournirons pas de mot de passe à cron, cela ne fonctionnera pas. Afin de travailler en douceur Cron, nous devons configurer Connects SSH sans mot de passe pour rsync.
Ici, dans cet exemple, je le fais comme racine conserver déposer la propriété De plus, vous pouvez également le faire pour des utilisateurs alternatifs.
Tout d'abord, nous générerons un public et privé clé avec les commandes suivantes sur le serveur de sauvegarde (i.e. sauvegarde.exemple.com).
[[Protégé par e-mail]] # SSH-Keygen -T RSA -B 2048
Lorsque vous entrez cette commande, veuillez ne pas fournir de phrase de passe et cliquez sur Entrer pour Phrase secrète vide de sorte que RSYNC Cron n'aura pas besoin de mot de passe pour synchroniser les données.
Échantillon de sortie
Génération de paires de clés RSA publiques / privées. Entrez le fichier dans lequel enregistrer la clé (/ root /.ssh / id_rsa): entrez en phrase de passe (vide pour aucune phrase de passe): entrez à nouveau la même phrase de passe: votre identification a été enregistrée dans / root /.ssh / id_rsa. Votre clé publique a été enregistrée dans / root /.ssh / id_rsa.pub. L'empreinte clés est: 9a: 33: a9: 5d: f4: e1: 41: 26: 57: d0: 9a: 68: 5b: 37: 9c: 23 [Protégé par e-mail] L'image aléatoire de la clé est: + - [[[ RSA 2048] ---- + | .o. | |… | |… ++ . | | O = E * | | .Sooo o | | =.O O | | * . O | | O + | |… | +-----------------+
Maintenant, notre Public et Privé La clé a été générée et nous devrons le partager avec le serveur principal afin que le serveur Web principal reconnaisse cette machine de sauvegarde et lui permettra de se connecter sans demander de mot de passe lors de la synchronisation des données.
[[e-mail protégé] html] # ssh-copy-id -i / root /.ssh / id_rsa.Pub [Protégé par e-mail]
Essayez maintenant de vous connecter à la machine, avec "ssh '[e-mail protégé]'", Et vérifiez .SSH / AUTORISED_KEYS.
[[Protégé par e-mail] HTML] # [Protégé par e-mail]
Maintenant, nous avons fini avec les clés de partage. Pour en savoir plus sur Mot de passe SSH Moins de connexion, Vous pouvez lire notre article à ce sujet.
- Connexion sans mot de passe SSH en 5 étapes faciles
Étape 5: Planifiez Cron pour automatiser la synchronisation
Installons un cron pour cela. Pour configurer un cron, veuillez ouvrir le fichier crontab avec la commande suivante.
[[Protégé par e-mail] ~] # crontab -e
Il s'ouvrira / etc / crontab fichier pour modifier avec votre éditeur par défaut. Ici, dans cet exemple, j'écris un cron pour l'exécuter toutes les 5 minutes pour synchroniser les données.
* / 5 * * * * Sync -avzhe ssh [e-mail protégé]: / var / www / / var / www /
La commande cron et rsync ci-dessus se synchronise simplement "/ var / www /«De la principale serveur Web à un serveur de sauvegarde dans chaque 5 minutes. Vous pouvez modifier la configuration de l'heure et de l'emplacement du dossier en fonction de vos besoins. Être plus créatif et personnaliser avec Rsync et Cron Commande, vous pouvez consulter nos articles plus détaillés à:
- 10 commandes RSYNC pour synchroniser les fichiers / dossiers dans Linux
- 11 exemples de planification Cron dans Linux
- « Pac Manager un outil de gestion de session SSH / FTP / Telnet distant
- Midnight Commander - Un gestionnaire de fichiers basé sur la console pour Linux »