Alta Disponibilidade · 8 min read · Dec 06, 2025
Como Configurar Alta Disponibilidade do Nginx com Pacemaker e Corosync no CentOS 7
Neste tutorial, iremos guiá-lo passo a passo sobre como criar um Cluster de Alta Disponibilidade do Servidor Web Nginx com Pacemaker, Corosync e Pcsd. Iremos criar o Cluster Ativo-Passivo ou Cluster de Failover do servidor web Nginx usando Pacemaker em um sistema CentOS 7.
Pacemaker é um software de gerenciamento de cluster de código aberto que alcança a máxima alta disponibilidade dos seus serviços. É um gerenciador de cluster HA avançado e escalável distribuído pela ClusterLabs.
Corosync Cluster Engine é um projeto de código aberto derivado do projeto OpenAIS sob a nova Licença BSD. É um sistema de comunicação em grupo com recursos adicionais para implementar Alta Disponibilidade dentro de aplicações.
Existem algumas aplicações para as interfaces do Pacemaker. Pcsd é uma das interfaces de linha de comando e GUI do Pacemaker para gerenciar o Pacemaker. Podemos criar, configurar ou adicionar um novo nó ao cluster com o comando pcsd.
Pré-requisitos
- 2 ou mais Servidores CentOS 7 - web01 10.0.15.10
- web02 10.0.15.11
- web03 10.0.15.12
- Endereço IP Flutuante 10.0.15.15
- Privilégios de Root
O que faremos:
- Mapear o Arquivo de Hosts
- Instalar o Repositório Epel e Nginx
- Instalar e Configurar Pacemaker, Corosync e Pcsd
- Criar e Configurar o Cluster
- Desabilitar STONITH e Ignorar a Política de Quorum
- Adicionar o IP Flutuante e Recursos
- Adicionar Regras ao Cluster
- Configurar Firewalld
- Testar a configuração
Passo 1 - Mapear o Arquivo de Hosts
Nota: Execute os passos 1 - 3 em todos os servidores web01, web02 e web03.
O primeiro passo que devemos fazer é editar o arquivo de hosts em cada servidor para mapear o nome do host de todos os servidores. Temos os servidores ‘web01’, ‘web02’ e ‘web03’, faça login em cada servidor com a conta ssh.
ssh root@web[01,02,03]Edite o arquivo ‘/etc/hosts’ com vim.
vim /etc/hostsCole a seguinte configuração lá.
10.0.15.10 web01
10.0.15.11 web02
10.0.15.12 web03Salve e saia.
Agora teste a configuração de mapeamento dos hosts.
ping -c 3 web01
ping -c 3 web02
ping -c 3 web03Certifique-se de que ‘web01’, ‘web02’ e ‘web03’ estão mapeados para os endereços IP corretos.

Passo 2 - Instalar o Repositório Epel e Nginx
Neste passo, iremos instalar o repositório epel e depois instalar o servidor web Nginx. O repositório EPEL ou Extra Packages for Enterprise Linux é necessário para instalar os pacotes do Nginx.
Instale o Repositório EPEL usando o seguinte comando yum.
yum -y install epel-releaseAgora instale o servidor web Nginx do repositório EPEL.
yum -y install nginxApós a instalação ser concluída, altere a página padrão index.html em cada servidor por uma nova página.
#Executar comando em 'web01'
echo 'web01 - hakase-labs
' > /usr/share/nginx/html/index.html
#Executar comando em 'web02'
echo 'web02 - hakase-labs
' > /usr/share/nginx/html/index.html
#Executar comando em 'web03'
echo 'web03 - hakase-labs
' > /usr/share/nginx/html/index.html
O Repositório EPEL e o servidor web Nginx estão agora instalados no sistema.
Passo 3 - Instalar e configurar Pacemaker, Corosync e Pcsd
Pacemaker, Corosync e Pcsd estão disponíveis no repositório padrão do sistema. Portanto, todos podem ser instalados a partir do repositório CentOS usando o seguinte comando yum.
yum -y install corosync pacemaker pcsApós a instalação ser concluída, habilite todos os serviços para iniciar automaticamente na inicialização do sistema usando os comandos systemctl abaixo.
systemctl enable pcsd
systemctl enable corosync
systemctl enable pacemakerAgora inicie a interface de linha de comando pcsd do Pacemaker em todos os servidores.
systemctl start pcsdEm seguida, crie uma nova senha para o usuário ‘hacluster’ e use a mesma senha para todos os servidores. Este usuário foi criado automaticamente durante a instalação do software.
Aqui está como você configura uma senha para o usuário ‘hacluster‘.
passwd hacluster
Digite a nova senha:O stack de software de Alta Disponibilidade Pacemaker, Corosync e Pcsd está instalado no sistema.

Passo 4 - Criar e Configurar o Cluster
Nota: Execute os passos 4 - 7 apenas em ‘web01’.
Neste passo, iremos criar um novo cluster com 3 servidores centos. Em seguida, configurar o endereço IP Flutuante e adicionar novos recursos do Nginx.
Para criar o cluster, precisamos autorizar todos os servidores usando o comando pcs e o usuário hacluster.
Autorize todos os servidores com o comando pcs e o usuário e senha hacluster.
pcs cluster auth web01 web02 web03
Nome de usuário: hacluster
Senha: aqwe123@
Agora é hora de configurar o cluster. Defina o nome do cluster e todos os servidores que farão parte do cluster.
pcs cluster setup --name hakase_cluster web01 web02 web03Agora inicie todos os serviços do cluster e também os habilite.
pcs cluster start --all
pcs cluster enable --all
Em seguida, verifique o status do cluster.
pcs status cluster
Passo 5 - Desabilitar STONITH e Ignorar a Política de Quorum
Como não estamos usando o dispositivo de cercamento, iremos desabilitar o STONITH. STONITH ou Shoot The Other Node In The Head é a implementação de cercamento no Pacemaker. Se você estiver em produção, é melhor habilitar o STONITH.
Desabilite o STONITH com o seguinte comando pcs.
pcs property set stonith-enabled=falseEm seguida, para a política de Quorum, ignore-a.
pcs property set no-quorum-policy=ignoreVerifique a lista de propriedades e certifique-se de que o stonith e a política de quorum estão desabilitados.
pcs property list
O STONITH e a Política de Quorum estão desabilitados.
Passo 6 - Adicionar o IP Flutuante e Recursos
O IP Flutuante é o endereço IP que pode ser migrado/movido automaticamente de um servidor para outro servidor no mesmo Data Center. E já definimos o endereço IP flutuante para a Alta Disponibilidade do Pacemaker como ‘10.0.15.15’. Agora queremos adicionar dois recursos, o recurso do endereço IP Flutuante com o nome ‘virtual_ip’ e um novo recurso para o servidor web Nginx chamado ‘webserver’.
Adicione o novo recurso do endereço IP flutuante ‘virtual_ip’ usando o comando pcs conforme mostrado abaixo.
pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=10.0.15.15 cidr_netmask=32 op monitor interval=30sEm seguida, adicione um novo recurso para o Nginx ‘webserver’.
pcs resource create webserver ocf:heartbeat:nginx configfile=/etc/nginx/nginx.conf op monitor timeout="5s" interval="5s"Certifique-se de que você não obteve erro, então verifique os recursos disponíveis.
pcs status resourcesVocê verá dois recursos ‘virtual_ip’ e ‘webserver’. Novos recursos para o IP Flutuante e servidor web Nginx foram adicionados.
Passo 7 - Adicionar Regras de Restrições ao Cluster
Neste passo, iremos configurar Regras de Alta Disponibilidade e configurar a restrição de recursos com a interface de linha de comando pcs.
Defina a restrição de colocalização para os recursos webserver e virtual_ip com pontuação ‘INFINITY’. Além disso, configure os recursos webserver e virtual_ip como os mesmos em todos os nós do servidor.
pcs constraint colocation add webserver virtual_ip INFINITYDefina os recursos ‘virtual_ip’ e ‘webserver’ sempre no mesmo nó de servidores.
pcs constraint order virtual_ip then the webserverEm seguida, pare o cluster e inicie novamente.
pcs cluster stop --all
pcs cluster start --all
Agora, verifique novamente os recursos e você verá seu status como ‘Iniciado’ no mesmo servidor ‘web01’.
pcs status resourcesOs recursos virtual_ip e webserver foram iniciados no mesmo servidor/nó ‘web01’.
Passo 8 - Configurar Firewalld
O HA-Cluster funcionará sob a configuração do firewall firewalld - instale-o se você não tiver o pacote.
yum -y install firewalldInicie o firewalld e habilite-o para ser executado automaticamente toda vez na inicialização do sistema usando os seguintes comandos systemctl.
systemctl start firewalld
systemctl enable firewalldEm seguida, adicione novos serviços ao firewalld com os comandos firewall-cmd - adicione o serviço de alta disponibilidade, serviços HTTP e HTTPS para o Nginx.
firewall-cmd --permanent --add-service=high-availability
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=httpsRecarregue a configuração do firewall e verifique todos os serviços.
firewall-cmd --reload
firewall-cmd --list-allCertifique-se de que o serviço ha com HTTP e https esteja na lista.

Passo 9 - Testando
Neste passo, vamos fazer alguns testes para o cluster. Teste o status do nó (‘Online’ ou ‘Offline’), teste os membros e status do corosync, e então teste a alta disponibilidade do servidor web Nginx acessando o endereço IP Flutuante.
Teste o status do nó com o seguinte comando.
pcs status nodes
Todos os nós estão ‘Online’.
Teste os membros do corosync.
corosync-cmapctl | grep membersVocê obterá o endereço IP dos membros do Corosync.

Verifique os membros do Corosync e você verá o resultado conforme mostrado abaixo.
pcs status corosync
E por último, verifique a Alta Disponibilidade do servidor web. Abra seu navegador e digite o endereço IP Flutuante ‘10.0.15.15’.
Você verá a página da servidor ‘web01’.
Em seguida, pare o cluster no servidor ‘web01’ com o comando abaixo.
pcs cluster stop web01E verifique novamente a página, e você obterá a página do servidor ‘web02’ como abaixo.
Adicional:
Verifique o status do cluster com o comando abaixo.
pcs statusE você obterá o resultado conforme mostrado abaixo.

A configuração da Alta Disponibilidade do servidor web Nginx com Pacemaker, Corosync e Pcsd no servidor CentOS 7 foi concluída com sucesso.
Referência
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.