Dans ce tutoriel, nous allons vous montrer comment configurer le cluster Nginx High Availability à l'aide de Pacemaker sur CentOS 7. Pour avoir un serveur Nginx qui peut fonctionner en continu sans panne pendant une longue période, nous devons configurer le serveur avec des instances Nginx actives-passives. . Pacemaker est un logiciel de gestion de cluster open source qui atteint une haute disponibilité maximale de vos services. Il s'agit d'un gestionnaire de cluster haute disponibilité avancé et évolutif distribué par ClusterLabs, il gère tous les services de cluster et utilise les capacités de messagerie et d'adhésion du moteur de cluster sous-jacent.
1. Prérequis
Pour suivre ce tutoriel, vous devez avoir :
- 2 serveurs ou plus
- Système d'exploitation CentOS 7
- accès root à chacun des serveurs
2. Connectez-vous et mettez à jour CentOS
ssh root@IP_Address -p7022
yum update yum upgrade
Modifiez le fichier /etc/hosts sur les deux serveurs avec n'importe quel éditeur de texte de terminal de votre choix
nano /etc/hosts
Ajoutez les lignes suivantes au fichier /etc/hosts
192.168.0.22 webserver-01 192.168.0.23 webserver-02
3. Installer le référentiel Epel et Nginx
Le référentiel Extra Packages for Enterprise Linux (EPEL) est nécessaire pour installer Nginx. Exécutez les commandes suivantes sur les deux serveurs.
yum install epel-release -y yum install nginx -y
systemctl enable nginx systemctl start nginx
4. Modifier la page d'index Nginx par défaut
Une fois terminé, nous devons apporter des modifications à la page d'index Nginx par défaut sur les deux serveurs.
Exécutez la commande suivante sur le serveur 1
echo ‘
serveurweb-01
’ > /usr/share/nginx/html/index.html
Exécutez la commande suivante sur le serveur deux
echo ‘
serveurweb-02
’ > /usr/share/nginx/html/index.html
5. Installer et configurer Pacemaker
Dans cette section, nous allons installer la pile Pacemaker. Vous devez terminer cette étape sur les deux serveurs.
yum install corosync pacemaker pcs -y
Une fois l'installation terminée, activez tous les services pour qu'ils se lancent automatiquement au démarrage du système à l'aide des commandes systemctl ci-dessous.
systemctl enable pacemaker systemctl enable corosync systemctl enable pcsd
6. Synchroniser la configuration
L'installation créera un utilisateur système "hacluster". Nous devons également exécuter pcsd afin de synchroniser la configuration
systemctl start pcsd
7. Créer un mot de passe
Ensuite, créez un nouveau mot de passe pour l'utilisateur "hacluster" qui avait été créé automatiquement lors de l'installation précédente, nous devons utiliser le même mot de passe pour tous les serveurs
passwd hacluster
8. Créer des clusters
Ensuite, exécutez cette commande ci-dessous
pcs cluster auth webserver-01 webserver-02
À ce stade, nous sommes prêts à configurer le cluster.
pcs cluster setup –name rosecluster webserver-01 webserver-02
rosecluster est le nom du cluster, tandis que webserver-01 et webserver-02 sont les serveurs qui feront partie de rosecluster.
Activez-le au démarrage et démarrez-le maintenant.
pcs cluster enable –all pcs cluster start –all
Nous pouvons vérifier l'état du cluster avec cette commande :
pcs status
9. Désactiver STONITH
STONITH ou Shoot The Other Node In The Head est l'implémentation de l'escrime sur Pacemaker. Si vous êtes en production, il est préférable d'activer STONITH. Puisque nous n'utilisons pas le dispositif d'escrime, nous allons désactiver le STONITH.
Lors de l'exécution de la commande d'état pcs, vous verrez un avertissement dans la sortie indiquant qu'aucun appareil STONITH n'est configuré et que STONITH n'est pas désactivé :
AVERTISSEMENT :aucun appareil stonith et stonith-enabled n'est pas faux
Désactivez STONITH avec la commande pcs suivante.
pcs property set stonith-enabled=false
10. Ignorer la politique de quorum
Dans ce tutoriel, nous allons configurer Pacemaker pour qu'il ignore le quorum :
pcs property set no-quorum-policy=ignore
Vérifiez la liste des propriétés et assurez-vous que stonith et la politique de quorum sont désactivées.
pcs property list
11. Ajouter des ressources
L'IP flottante est l'adresse IP qui peut être migrée instantanément d'un serveur à un autre dans le même réseau, elle est utilisée pour prendre en charge le basculement dans un cluster à haute disponibilité. Dans ce didacticiel, l'adresse IP flottante pour le Pacemaker High-Availability sera "192.168.0.100". Pour l'instant, nous allons ajouter deux ressources, la ressource d'adresse IP flottante avec le nom "v_ip" et une nouvelle ressource pour le serveur Web Nginx nommée "webserver".
Ajoutez la nouvelle adresse IP flottante "v_ip" à l'aide de la commande suivante.
pcs resource create v_ip ocf:heartbeat:IPaddr2 ip=192.168.0.100 cidr_netmask=32 op monitor interval=20s
Ensuite, nous pouvons ajouter la deuxième ressource au cluster. L'agent de ressource du service est ocf:heartbeat:nginx nommé 'webserver'.
pcs resource create webserver ocf:heartbeat:nginx configfile=/etc/nginx/nginx.conf op monitor timeout=”5s” interval=”5s”
Assurez-vous qu'il n'y a pas d'erreur, puis vérifiez les ressources.
pcs status resources
Si vous voyez deux ressources; 'v_ip' et 'webserver', cela signifie que l'adresse IP flottante et le serveur Web Nginx ont été ajoutés.
12. Configurer les contraintes
Dans cette étape, nous dirons au serveur de faire en sorte que les deux ressources créées précédemment s'exécutent sur le même hôte. Nous allons définir une contrainte de colocalisation pour les ressources avec un score INFINITY.
pcs constraint colocation add webserver v_ip INFINITY
Définissez la ressource Nginx (serveur Web) pour qu'elle s'exécute toujours sur le même hôte où v_ip est actif.
pcs constraint order v_ip then webserver
Pour vérifier que les ressources s'exécutent sur le même hôte, nous pouvons invoquer :
pcs status
13. Testez le cluster.
Accédez à http://192.168.0.100 sur votre navigateur Web, vous verrez la page Nginx par défaut du serveur Web-01.
Ensuite, appelez la commande suivante pour arrêter le cluster sur le serveur Web-01 :
pcs cluster stop webserver-01
Maintenant, si vous actualisez la page à l'adresse http://192.168.0.100, vous obtiendrez la page Nginx par défaut du serveur Web-02.
Félicitations, vous avez configuré avec succès un cluster actif-passif Nginx High Availability avec Pacemaker. Si vous avez un site Web très fréquenté, vous pouvez envisager d'exécuter votre site Web sur un Nginx HA. De nombreux sites Web bien connus fonctionnent sur Nginx HA et ils utilisent Nginx HA pour diffuser leur contenu rapidement, de manière fiable et sécurisée.
Bien sûr, vous n'êtes pas obligé de configurer le cluster haute disponibilité Nginx à l'aide de Pacemaker sur CentOS 7, si vous utilisez l'une de nos solutions d'hébergement Nginx, auquel cas vous pouvez simplement demander à nos administrateurs Linux experts de vous aider. Ils sont disponibles 24h/24 et 7j/7 et prendront immédiatement en charge votre demande.
PS . Si vous avez aimé cet article sur la configuration du cluster haute disponibilité Nginx à l'aide de Pacemaker sur CentOS 7, partagez-le avec vos amis sur les réseaux sociaux à l'aide des boutons à gauche ou laissez simplement une réponse ci-dessous. Merci.