Serveur Web · 8 min read · Dec 06, 2025
Comment configurer la haute disponibilité Nginx avec Pacemaker et Corosync sur CentOS 7
Dans ce tutoriel, nous vous guiderons étape par étape sur la façon de créer un serveur Web Nginx en cluster haute disponibilité avec Pacemaker, Corosync et Pcsd. Nous allons créer le serveur Web Nginx en cluster actif-passif ou en cluster de basculement en utilisant Pacemaker sur un système CentOS 7.
Pacemaker est un logiciel de gestion de cluster open source qui atteint une disponibilité maximale de vos services. C’est un gestionnaire de cluster HA avancé et évolutif distribué par ClusterLabs.
Corosync Cluster Engine est un projet open source dérivé du projet OpenAIS sous la nouvelle licence BSD. C’est un système de communication de groupe avec des fonctionnalités supplémentaires pour mettre en œuvre la haute disponibilité au sein des applications.
Il existe certaines applications pour les interfaces de Pacemaker. Pcsd est l’une des interfaces en ligne de commande et GUI de Pacemaker pour gérer Pacemaker. Nous pouvons créer, configurer ou ajouter un nouveau nœud au cluster avec la commande pcsd pcs.
Prérequis
- 2 serveurs CentOS 7 ou plus - web01 10.0.15.10
- web02 10.0.15.11
- web03 10.0.15.12
- Adresse IP flottante 10.0.15.15
- Privilèges root
Ce que nous allons faire :
- Mapper le fichier hôte
- Installer le dépôt Epel et Nginx
- Installer et configurer Pacemaker, Corosync et Pcsd
- Créer et configurer le cluster
- Désactiver STONITH et ignorer la politique de quorum
- Ajouter l’IP flottante et les ressources
- Ajouter des règles au cluster
- Configurer Firewalld
- Tester la configuration
Étape 1 - Mapper le fichier hôte
Remarque : Exécutez les étapes 1 à 3 sur tous les serveurs web01, web02 et web03.
La première étape que nous devons faire est d’éditer le fichier hôte sur chaque serveur afin de mapper le nom d’hôte de tous les serveurs. Nous avons les serveurs ‘web01’, ‘web02’ et ‘web03’, connectez-vous à chaque serveur avec le compte ssh.
ssh root@web[01,02,03]Éditez le fichier ‘/etc/hosts’ avec vim.
vim /etc/hostsCollez la configuration suivante là-bas.
10.0.15.10 web01
10.0.15.11 web02
10.0.15.12 web03Enregistrez et quittez.
Maintenant, testez la configuration de mappage des hôtes.
ping -c 3 web01
ping -c 3 web02
ping -c 3 web03Assurez-vous que ‘web01’, ‘web02’ et ‘web03’ sont mappés aux bonnes adresses IP.

Étape 2 - Installer le dépôt Epel et Nginx
Dans cette étape, nous allons installer le dépôt epel puis installer le serveur Web Nginx. Le dépôt EPEL ou Extra Packages for Enterprise Linux est nécessaire pour installer les paquets Nginx.
Installez le dépôt EPEL en utilisant la commande yum suivante.
yum -y install epel-releaseMaintenant, installez le serveur Web Nginx à partir du dépôt EPEL.
yum -y install nginxAprès que l’installation soit terminée, changez la page index.html par défaut sur chaque serveur avec une nouvelle page.
#Exécuter la commande sur 'web01'
echo 'web01 - hakase-labs
' > /usr/share/nginx/html/index.html
#Exécuter la commande sur 'web02'
echo 'web02 - hakase-labs
' > /usr/share/nginx/html/index.html
#Exécuter la commande sur 'web03'
echo 'web03 - hakase-labs
' > /usr/share/nginx/html/index.html
Le dépôt EPEL et le serveur Web Nginx sont maintenant installés sur le système.
Étape 3 - Installer et configurer Pacemaker, Corosync et Pcsd
Pacemaker, Corosync et Pcsd sont disponibles dans le dépôt système par défaut. Ils peuvent donc tous être installés à partir du dépôt CentOS en utilisant la commande yum suivante.
yum -y install corosync pacemaker pcsAprès que l’installation soit terminée, activez tous les services pour qu’ils se lancent automatiquement au démarrage du système en utilisant les commandes systemctl ci-dessous.
systemctl enable pcsd
systemctl enable corosync
systemctl enable pacemakerMaintenant, démarrez l’interface en ligne de commande pcsd Pacemaker sur tous les serveurs.
systemctl start pcsdEnsuite, créez un nouveau mot de passe pour l’utilisateur ‘hacluster’ et utilisez le même mot de passe pour tous les serveurs. Cet utilisateur a été créé automatiquement lors de l’installation du logiciel.
Voici comment vous configurez un mot de passe pour l’utilisateur ‘hacluster‘.
passwd hacluster
Entrez le nouveau mot de passe :La pile de logiciels de haute disponibilité Pacemaker, Corosync et Pcsd est installée sur le système.

Étape 4 - Créer et configurer le cluster
Remarque : Exécutez les étapes 4 à 7 uniquement sur ‘web01’.
Dans cette étape, nous allons créer un nouveau cluster avec 3 serveurs CentOS. Ensuite, configurez l’adresse IP flottante et ajoutez de nouvelles ressources Nginx.
Pour créer le cluster, nous devons autoriser tous les serveurs en utilisant la commande pcs et l’utilisateur hacluster.
Autorisez tous les serveurs avec la commande pcs et l’utilisateur et mot de passe hacluster.
pcs cluster auth web01 web02 web03
Nom d'utilisateur : hacluster
Mot de passe : aqwe123@
Il est maintenant temps de configurer le cluster. Définissez le nom du cluster et tous les serveurs qui feront partie du cluster.
pcs cluster setup --name hakase_cluster web01 web02 web03Maintenant, démarrez tous les services du cluster et activez-les également.
pcs cluster start --all
pcs cluster enable --all
Ensuite, vérifiez l’état du cluster.
pcs status cluster
Étape 5 - Désactiver STONITH et ignorer la politique de quorum
Puisque nous n’utilisons pas le dispositif de clôture, nous allons désactiver le STONITH. STONITH ou Shoot The Other Node In The Head est l’implémentation de clôture sur Pacemaker. Si vous êtes en production, il est préférable d’activer STONITH.
Désactivez STONITH avec la commande pcs suivante.
pcs property set stonith-enabled=falseEnsuite, pour la politique de quorum, ignorez-la.
pcs property set no-quorum-policy=ignoreVérifiez la liste des propriétés et assurez-vous que stonith et la politique de quorum sont désactivés.
pcs property list
Le STONITH et la politique de quorum sont désactivés.
Étape 6 - Ajouter l’IP flottante et les ressources
L’IP flottante est l’adresse IP qui peut être migrée/déplacée automatiquement d’un serveur à un autre serveur dans le même centre de données. Et nous avons déjà défini l’adresse IP flottante pour la haute disponibilité de Pacemaker comme étant ‘10.0.15.15’. Maintenant, nous voulons ajouter deux ressources, la ressource d’adresse IP flottante avec le nom ‘virtual_ip’ et une nouvelle ressource pour le serveur Web Nginx nommée ‘webserver’.
Ajoutez la nouvelle ressource d’adresse IP flottante ‘virtual_ip’ en utilisant la commande pcs comme indiqué ci-dessous.
pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=10.0.15.15 cidr_netmask=32 op monitor interval=30sEnsuite, ajoutez une nouvelle ressource pour le Nginx ‘webserver’.
pcs resource create webserver ocf:heartbeat:nginx configfile=/etc/nginx/nginx.conf op monitor timeout="5s" interval="5s"Assurez-vous que vous n’avez pas de résultat d’erreur, puis vérifiez les ressources disponibles.
pcs status resourcesVous verrez deux ressources ‘virtual_ip’ et ‘webserver’. De nouvelles ressources pour l’IP flottante et le serveur Web Nginx ont été ajoutées.
Étape 7 - Ajouter des règles de contrainte au cluster
Dans cette étape, nous allons configurer des règles de haute disponibilité et établir une contrainte de ressources avec l’interface de ligne de commande pcs.
Définissez la contrainte de colocation pour les ressources webserver et virtual_ip avec un score ‘INFINITY’. De plus, configurez les ressources webserver et virtual_ip comme étant les mêmes sur tous les nœuds du serveur.
pcs constraint colocation add webserver virtual_ip INFINITYDéfinissez les ressources ‘virtual_ip’ et ‘webserver’ toujours sur les mêmes nœuds serveurs.
pcs constraint order virtual_ip then webserverEnsuite, arrêtez le cluster puis redémarrez-le.
pcs cluster stop --all
pcs cluster start --all
Maintenant, vérifiez à nouveau les ressources et vous verrez leur statut comme ‘Démarré’ sur le même serveur ‘web01’.
pcs status resourcesLes ressources virtual_ip et webserver ont été démarrées sur le même serveur/nœud ‘web01’.
Étape 8 - Configurer Firewalld
Le cluster HA fonctionnera sous la configuration du pare-feu firewalld - installez-le si vous n’avez pas le paquet.
yum -y install firewalldDémarrez firewalld et activez-le pour qu’il s’exécute automatiquement à chaque démarrage du système en utilisant les commandes systemctl suivantes.
systemctl start firewalld
systemctl enable firewalldEnsuite, ajoutez de nouveaux services au firewalld avec les commandes firewall-cmd - ajoutez le service de haute disponibilité, les services HTTP et HTTPS pour Nginx.
firewall-cmd --permanent --add-service=high-availability
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=httpsRechargez la configuration du pare-feu et vérifiez tous les services.
firewall-cmd --reload
firewall-cmd --list-allAssurez-vous que le service ha avec HTTP et https est présent dans la liste.

Étape 9 - Test
Dans cette étape, nous allons effectuer quelques tests pour le cluster. Testez l’état des nœuds (‘En ligne’ ou ‘Hors ligne’), testez les membres et l’état de corosync, puis testez la haute disponibilité du serveur Web Nginx en accédant à l’adresse IP flottante.
Testez l’état des nœuds avec la commande suivante.
pcs status nodes
Tous les nœuds sont en ligne ‘En ligne’.
Testez les membres de corosync.
corosync-cmapctl | grep membersVous obtiendrez l’adresse IP des membres de Corosync.

Vérifiez les membres de Corosync, et vous verrez le résultat comme indiqué ci-dessous.
pcs status corosync
Et enfin, vérifiez la haute disponibilité du serveur Web. Ouvrez votre navigateur Web et tapez l’adresse IP flottante ‘10.0.15.15’.
Vous verrez la page Web du serveur ‘web01’.
Ensuite, arrêtez le cluster sur le serveur ‘web01’ avec la commande ci-dessous.
pcs cluster stop web01Et vérifiez à nouveau la page, et vous obtiendrez la page du serveur ‘web02’ comme ci-dessous.
Supplémentaire :
Vérifiez l’état du cluster avec la commande ci-dessous.
pcs statusEt vous obtiendrez le résultat comme indiqué ci-dessous.

La configuration de la haute disponibilité du serveur Web Nginx avec Pacemaker, Corosync et Pcsd sur le serveur CentOS 7 a été complétée avec succès.
Référence
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.