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:

  1. Mapear o Arquivo de Hosts
  2. Instalar o Repositório Epel e Nginx
  3. Instalar e Configurar Pacemaker, Corosync e Pcsd
  4. Criar e Configurar o Cluster
  5. Desabilitar STONITH e Ignorar a Política de Quorum
  6. Adicionar o IP Flutuante e Recursos
  7. Adicionar Regras ao Cluster
  8. Configurar Firewalld
  9. 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/hosts

Cole a seguinte configuração lá.

10.0.15.10      web01  
10.0.15.11      web02  
10.0.15.12      web03

Salve e saia.

Agora teste a configuração de mapeamento dos hosts.

ping -c 3 web01  
ping -c 3 web02  
ping -c 3 web03

Certifique-se de que ‘web01’, ‘web02’ e ‘web03’ estão mapeados para os endereços IP corretos.

Verificar interconexão do servidor com ping

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-release

Agora instale o servidor web Nginx do repositório EPEL.

yum -y install nginx

Apó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

Instalar repositório epel e nginx

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 pcs

Apó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 pacemaker

Agora inicie a interface de linha de comando pcsd do Pacemaker em todos os servidores.

systemctl start pcsd

Em 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.

Instalar e configurar Pacemaker, Corosync e Pcsd

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@

Criar e Configurar o Cluster

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 web03

Agora inicie todos os serviços do cluster e também os habilite.

pcs cluster start --all  
pcs cluster enable --all

Iniciar o cluster

Em seguida, verifique o status do cluster.

pcs status cluster

Verificar status do 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=false

Em seguida, para a política de Quorum, ignore-a.

pcs property set no-quorum-policy=ignore

Verifique a lista de propriedades e certifique-se de que o stonith e a política de quorum estão desabilitados.

pcs property list

Desabilitar STONITH e Ignorar a Política de Quorum

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=30s

Em 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 resources

Você 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 INFINITY

Defina os recursos ‘virtual_ip’ e ‘webserver’ sempre no mesmo nó de servidores.

pcs constraint order virtual_ip then the webserver

Em seguida, pare o cluster e inicie novamente.

pcs cluster stop --all  
pcs cluster start --all

Adicionar Regras de Restrições ao Cluster

Agora, verifique novamente os recursos e você verá seu status como ‘Iniciado’ no mesmo servidor ‘web01’.

pcs status resources

Os 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 firewalld

Inicie 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 firewalld

Em 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=https

Recarregue a configuração do firewall e verifique todos os serviços.

firewall-cmd --reload  
firewall-cmd --list-all

Certifique-se de que o serviço ha com HTTP e https esteja na lista.

Recarregar firewall e verificar regras do firewall

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

Testando a configuração

Todos os nós estão ‘Online’.

Teste os membros do corosync.

corosync-cmapctl | grep members

Você obterá o endereço IP dos membros do Corosync.

Endereços IP dos membros do Corosync

Verifique os membros do Corosync e você verá o resultado conforme mostrado abaixo.

pcs status corosync

Status do 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 web01

E 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 status

E você obterá o resultado conforme mostrado abaixo.

Verificar status do pcs

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

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.