Alta Disponibilidad · 8 min read · Dec 06, 2025
Cómo configurar la alta disponibilidad de Nginx con Pacemaker y Corosync en CentOS 7
En este tutorial, te guiaremos paso a paso sobre cómo crear un Servidor Web Nginx en un Clúster de Alta Disponibilidad con Pacemaker, Corosync y Pcsd. Crearemos el Clúster Activo-Pasivo o Clúster de Failover del servidor web Nginx utilizando Pacemaker en un sistema CentOS 7.
Pacemaker es un software de gestión de clústeres de código abierto que logra la máxima alta disponibilidad de tus servicios. Es un gestor de clústeres HA avanzado y escalable distribuido por ClusterLabs.
Corosync Cluster Engine es un proyecto de código abierto derivado del proyecto OpenAIS bajo la nueva Licencia BSD. Es un sistema de comunicación de grupo con características adicionales para implementar alta disponibilidad dentro de las aplicaciones.
Hay algunas aplicaciones para las interfaces de Pacemaker. Pcsd es una de las interfaces de línea de comandos y GUI de Pacemaker para gestionar Pacemaker. Podemos crear, configurar o agregar un nuevo nodo al clúster con el comando pcsd pcs.
Requisitos previos
- 2 o más Servidores CentOS 7 - web01 10.0.15.10
- web02 10.0.15.11
- web03 10.0.15.12
- Dirección IP flotante 10.0.15.15
- Privilegios de Root
Lo que haremos:
- Mapear el archivo de hosts
- Instalar el repositorio Epel y Nginx
- Instalar y configurar Pacemaker, Corosync y Pcsd
- Crear y configurar el clúster
- Deshabilitar STONITH e ignorar la política de quórum
- Agregar la IP flotante y los recursos
- Agregar reglas al clúster
- Configurar Firewalld
- Probar la configuración
Paso 1 - Mapear el archivo de hosts
Nota: Ejecuta los pasos 1 - 3 en todos los servidores web01, web02 y web03.
El primer paso que debemos hacer es editar el archivo de hosts en cada servidor para mapear el nombre de host de todos los servidores. Tenemos los servidores ‘web01’, ‘web02’ y ‘web03’, inicia sesión en cada servidor con la cuenta ssh.
ssh root@web[01,02,03]Edita el archivo ‘/etc/hosts’ con vim.
vim /etc/hostsPega la siguiente configuración allí.
10.0.15.10 web01
10.0.15.11 web02
10.0.15.12 web03Guarda y sal.
Ahora prueba la configuración de mapeo de hosts.
ping -c 3 web01
ping -c 3 web02
ping -c 3 web03Asegúrate de que ‘web01’, ‘web02’ y ‘web03’ estén mapeados a las direcciones IP correctas.

Paso 2 - Instalar el repositorio Epel y Nginx
En este paso, instalaremos el repositorio epel y luego instalaremos el servidor web Nginx. Se necesita el repositorio EPEL o Extra Packages for Enterprise Linux para instalar los paquetes de Nginx.
Instala el repositorio EPEL utilizando el siguiente comando yum.
yum -y install epel-releaseAhora instala el servidor web Nginx desde el repositorio EPEL.
yum -y install nginxDespués de que la instalación esté completa, cambia la página index.html predeterminada en cada servidor por una nueva página.
#Ejecutar comando en 'web01'
echo 'web01 - hakase-labs
' > /usr/share/nginx/html/index.html
#Ejecutar comando en 'web02'
echo 'web02 - hakase-labs
' > /usr/share/nginx/html/index.html
#Ejecutar comando en 'web03'
echo 'web03 - hakase-labs
' > /usr/share/nginx/html/index.html
El repositorio EPEL y el servidor web Nginx ahora están instalados en el sistema.
Paso 3 - Instalar y configurar Pacemaker, Corosync y Pcsd
Pacemaker, Corosync y Pcsd están disponibles en el repositorio del sistema predeterminado. Por lo tanto, todos pueden ser instalados desde el repositorio de CentOS utilizando el siguiente comando yum.
yum -y install corosync pacemaker pcsDespués de que la instalación se haya completado, habilita todos los servicios para que se inicien automáticamente al arrancar el sistema utilizando los comandos systemctl a continuación.
systemctl enable pcsd
systemctl enable corosync
systemctl enable pacemakerAhora inicia la interfaz de línea de comandos de Pacemaker pcsd en todos los servidores.
systemctl start pcsdA continuación, crea una nueva contraseña para el usuario ‘hacluster’ y usa la misma contraseña para todos los servidores. Este usuario se ha creado automáticamente durante la instalación del software.
Así es como configuras una contraseña para el usuario ‘hacluster‘.
passwd hacluster
Introduce nueva contraseña:El stack de software de alta disponibilidad Pacemaker, Corosync y Pcsd está instalado en el sistema.

Paso 4 - Crear y configurar el clúster
Nota: Ejecuta los pasos 4 - 7 solo en ‘web01’.
En este paso, crearemos un nuevo clúster con 3 servidores centos. Luego configuraremos la dirección IP flotante y agregaremos nuevos recursos de Nginx.
Para crear el clúster, necesitamos autorizar todos los servidores utilizando el comando pcs y el usuario hacluster.
Autoriza todos los servidores con el comando pcs y el usuario y contraseña hacluster.
pcs cluster auth web01 web02 web03
Nombre de usuario: hacluster
Contraseña: aqwe123@
Ahora es el momento de configurar el clúster. Define el nombre del clúster y todos los servidores que formarán parte del clúster.
pcs cluster setup --name hakase_cluster web01 web02 web03Ahora inicia todos los servicios del clúster y también habilítalos.
pcs cluster start --all
pcs cluster enable --all
A continuación, verifica el estado del clúster.
pcs status cluster
Paso 5 - Deshabilitar STONITH e ignorar la política de quórum
Dado que no estamos utilizando el dispositivo de cercado, deshabilitaremos el STONITH. STONITH o Shoot The Other Node In The Head es la implementación de cercado en Pacemaker. Si estás en producción, es mejor habilitar STONITH.
Deshabilita STONITH con el siguiente comando pcs.
pcs property set stonith-enabled=falseA continuación, para la política de quórum, ignórala.
pcs property set no-quorum-policy=ignoreVerifica la lista de propiedades y asegúrate de que stonith y la política de quórum estén deshabilitadas.
pcs property list
El STONITH y la política de quórum están deshabilitados.
Paso 6 - Agregar la IP flotante y los recursos
La IP flotante es la dirección IP que puede ser migrada/movida automáticamente de un servidor a otro en el mismo Centro de Datos. Y ya hemos definido la dirección IP flotante para la alta disponibilidad de Pacemaker como ‘10.0.15.15’. Ahora queremos agregar dos recursos, el recurso de dirección IP flotante con el nombre ‘virtual_ip’ y un nuevo recurso para el servidor web Nginx llamado ‘webserver’.
Agrega el nuevo recurso de dirección IP flotante ‘virtual_ip’ utilizando el comando pcs como se muestra a continuación.
pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=10.0.15.15 cidr_netmask=32 op monitor interval=30sA continuación, agrega un nuevo recurso para el Nginx ‘webserver’.
pcs resource create webserver ocf:heartbeat:nginx configfile=/etc/nginx/nginx.conf op monitor timeout="5s" interval="5s"Asegúrate de que no obtuviste un resultado de error, luego verifica los recursos disponibles.
pcs status resourcesVerás dos recursos ‘virtual_ip’ y ‘webserver’. Se han agregado nuevos recursos para la IP flotante y el servidor web Nginx.
Paso 7 - Agregar reglas de restricción al clúster
En este paso, configuraremos las reglas de alta disponibilidad y estableceremos la restricción de recursos con la interfaz de línea de comandos pcs.
Establece la restricción de colocación para los recursos webserver y virtual_ip con puntaje ‘INFINITO’. Además, configura los recursos webserver y virtual_ip como los mismos en todos los nodos del servidor.
pcs constraint colocation add webserver virtual_ip INFINITYEstablece que los recursos ‘virtual_ip’ y ‘webserver’ siempre estén en los mismos nodos del servidor.
pcs constraint order virtual_ip then the webserverA continuación, detén el clúster y luego inícialo nuevamente.
pcs cluster stop --all
pcs cluster start --all
Ahora, verifica nuevamente los recursos y verás su estado como ‘Iniciado’ en el mismo servidor ‘web01’.
pcs status resourcesLos recursos virtual_ip y webserver se han iniciado en el mismo servidor/nodo ‘web01’.
Paso 8 - Configurar Firewalld
El HA-Cluster se ejecutará bajo la configuración del firewall firewalld - instálalo si no tienes el paquete.
yum -y install firewalldInicia firewalld y habilítalo para que se ejecute automáticamente cada vez que se inicie el sistema utilizando los siguientes comandos systemctl.
systemctl start firewalld
systemctl enable firewalldA continuación, agrega nuevos servicios al firewalld con los comandos firewall-cmd - agrega el servicio de alta disponibilidad, servicios HTTP y HTTPS para Nginx.
firewall-cmd --permanent --add-service=high-availability
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=httpsRecarga la configuración del firewall y verifica todos los servicios.
firewall-cmd --reload
firewall-cmd --list-allAsegúrate de que el servicio ha con HTTP y https esté en la lista.

Paso 9 - Pruebas
En este paso, vamos a realizar algunas pruebas para el clúster. Prueba el estado del nodo (‘En línea’ o ‘Fuera de línea’), prueba los miembros y el estado de corosync, y luego prueba la alta disponibilidad del servidor web Nginx accediendo a la dirección IP flotante.
Prueba el estado del nodo con el siguiente comando.
pcs status nodes
Todos los nodos están ‘En línea’.
Prueba los miembros de corosync.
corosync-cmapctl | grep membersObtendrás la dirección IP de los miembros de Corosync.

Verifica los miembros de Corosync y verás el resultado como se muestra a continuación.
pcs status corosync
Y por último, verifica la alta disponibilidad del servidor web. Abre tu navegador web y escribe la dirección IP flotante ‘10.0.15.15’.
Verás la página web del servidor ‘web01’.
A continuación, detén el clúster en el servidor ‘web01’ con el comando a continuación.
pcs cluster stop web01Y verifica nuevamente la página, y obtendrás la página del servidor ‘web02’ como se muestra a continuación.
Adicional:
Verifica el estado del clúster con el comando a continuación.
pcs statusY obtendrás el resultado como se muestra a continuación.

La configuración de alta disponibilidad del servidor web Nginx con Pacemaker, Corosync y Pcsd en el servidor CentOS 7 se ha completado con éxito.
Referencia
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.