Configurar DNS Registro br com Proxy Reverso Nginx sem queda é o método de transição em que uma camada intermediária de terminação web recebe o tráfego externo e o repassa à aplicação sem gerar indisponibilidade durante a troca de apontamentos. Para aplicar essa migração mantendo seu site 100% online, siga estes passos:
- Instale e configure o Nginx como proxy reverso com suporte a TLS no servidor de destino.
- Reduza previamente o TTL da zona DNS no painel do Registro.br para agilizar a propagação.
- Crie os blocos de servidor no Nginx apontando para o backend e valide a sintaxe do serviço.
- Altere os registros A e CNAME no Registro.br direcionando para o IP do proxy reverso Nginx.
- Monitore a propagação e a alternância simultânea de requisições nos logs de acesso.
Pré-requisitos
- Servidor rodando AlmaLinux 9, Rocky Linux 9 ou Debian 12 (Bookworm) com acesso root ou privilégios sudo.
- Nginx 1.28 ou superior instalado e em execução no servidor de borda.
- Aplicação backend (Node.js, PHP-FPM, Docker ou Python) rodando em porta local (ex.: 127.0.0.1:3000 ou 127.0.0.1:8080).
- Acesso administrativo à conta do domínio na plataforma Registro.br.
- Certificado SSL/TLS válido instalado previamente na origem ou configurado no proxy via Let's Encrypt.
- Portas 80 e 443 liberadas no firewall do sistema operacional (nftables ou UFW).
Como integrar o DNS Registro.br ao Proxy Reverso Nginx
A arquitetura de proxy reverso protege a origem da infraestrutura, centraliza a criptografia SSL e permite escalabilidade de requisições HTTP sem expor portas de aplicação. O maior receio de administradores de sistemas durante esse redirecionamento é o temido downtime gerado pelo cache distribuído em provedores de internet. Se você tem dúvidas conceituais sobre apontamentos essenciais, consulte o Guia de zona DNS: registros A, MX, CNAME e TXT do zero para compreender como cada entrada se comporta na rede.
Configuração do Virtual Host Nginx para Proxy Reverso
O primeiro passo consiste em preparar o bloco de configuração virtual host do Nginx para receber as conexões antes mesmo de alterar qualquer entrada externa. Abra o arquivo de configuração da sua aplicação:
sudo nano /etc/nginx/conf.d/seudominio.conf
Insira a estrutura abaixo, ajustando o IP interno e a porta correspondente à sua aplicação local:
server {
listen 80;
listen [::]:80;
server_name seudominio.com.br www.seudominio.com.br;
location /.well-known/acme-challenge/ {
root /var/www/html;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name seudominio.com.br www.seudominio.com.br;
ssl_certificate /etc/letsencrypt/live/seudominio.com.br/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/seudominio.com.br/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
}
}
Antes de aplicar qualquer alteração em produção, teste a sintaxe das diretivas para garantir que não há erros tipográficos:
sudo nginx -t
Output esperado:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Com o arquivo validado, recarregue as configurações do Nginx sem derrubar conexões ativas utilizando o sinal de recarga do systemd:
sudo systemctl reload nginx
Verifique se os sockets das portas 80 e 443 estão devidamente abertos na máquina com a ferramenta moderna ss:
sudo ss -tlpn | grep -E ':(80|443)'
Output esperado:
LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=14201,fd=6))
LISTEN 0 511 0.0.0.0:443 0.0.0.0:* users:(("nginx",pid=14201,fd=7))
Ajuste de TTL e transição de apontamento no Registro.br
O segredo operacional para uma virada de chave sem oscilações reside no gerenciamento do tempo de vida das respostas em cache (TTL). No Registro.br, caso você utilize o serviço de DNS autoritativo padrão da própria entidade, o TTL padrão costuma ser de 2 horas (7200 segundos). Isso significa que resolvedores de DNS pelo mundo reterão o endereço IP antigo por até duas horas após a modificação.
Para executar a troca com precisão cirúrgica:
- Acesse o painel do Registro.br com suas credenciais de administrador.
- Selecione o domínio desejado na lista e localize o bloco DNS.
- Clique em Editar Zona (se estiver no modo avançado).
- Localize o registro
Ada raiz (seudominio.com.br) e o registroCNAMEouAdo subdomíniowww. - Altere o endereço IPv4 para o IP público do seu servidor proxy reverso Nginx (exemplo fictício:
203.0.113.10). - Salve as alterações clicando em Salvar Dados.
Como ambos os ambientes (o servidor antigo e o novo proxy Nginx) devem permanecer ligados simultaneamente durante o ciclo de publicação do Registro.br, o tráfego que atingir o IP novo já será atendido pelo Nginx imediatamente, enquanto operadoras com cache antigo continuarão no host anterior até a expiração local da entrada.
Validação dos cabeçalhos HTTP e resolução de nomes
Após salvar a zona, confirme se os servidores recursivos locais e remotos já enxergam a alteração através do utilitário dig:
dig +short seudominio.com.br @200.160.2.3
Output esperado:
203.0.113.10
No comando acima, realizamos a consulta diretamente no servidor autoritativo raiz do Registro.br (200.160.2.3 para o bloco .br), garantindo que a base central do registro nacional já publicou a nova entrada.
Em seguida, valide se a terminação TLS e os cabeçalhos de encaminhamento estão operando de ponta a ponta sem erros de loop ou bloqueio:
curl -Iv https://seudominio.com.br
Output esperado:
* Connected to seudominio.com.br (203.0.113.10) port 443
* ALPN: offers h2, http/1.1
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* Server certificate:
* subject: CN=seudominio.com.br
* issuer: C=US, O=Let's Encrypt, CN=R3
< HTTP/2 200
< server: nginx
< date: Tue, 10 Feb 2026 12:00:00 GMT
< content-type: text/html; charset=UTF-8
Problemas comuns e como resolver
Sintoma: Erro 502 Bad Gateway ao acessar o domínio
Causa: O Nginx subiu com sucesso e recebeu a requisição do visitante, porém o serviço backend na porta 3000 está parado, escutando apenas em interface IPv6, ou bloqueado por políticas locais do SELinux.
Solução: Verifique o status da aplicação local com sudo ss -tlpn | grep 3000. Se estiver rodando AlmaLinux ou Rocky Linux, libere o Nginx para conectar em portas de rede no SELinux executando sudo setsebool -P httpd_can_network_connect 1.
Sintoma: Loop infinito de redirecionamento (ERR_TOO_MANY_REDIRECTS)
Causa: A aplicação de destino tenta forçar HTTPS por conta própria, mas não identifica que a conexão de borda já é criptografada devido à ausência do cabeçalho de protocolo.
Solução: Adicione a diretiva proxy_set_header X-Forwarded-Proto $scheme; dentro do bloco location / no Nginx e recarregue as configurações com sudo systemctl reload nginx.
Sintoma: Falha na emissão do certificado Let's Encrypt no novo IP
Causa: O Certbot foi executado antes do DNS do Registro.br propagar, fazendo com que o resolvedor ACME consulte o IP do servidor antigo onde o arquivo de validação HTTP-01 não existe.
Solução: Se você estiver enfrentando bloqueios de porta SSH ou serviços auxiliares ao mesmo tempo, revise o guia sobre como solucionar problemas de acesso SSH no VPS Linux. Para o Let's Encrypt, aguarde a publicação autoritativa do Registro.br ou utilize o método DNS-01 para validar o certificado antes de apontar os registros A.
Perguntas frequentes
Como evitar queda de tráfego ao alterar o DNS no Registro.br?
Para evitar qualquer indisponibilidade, configure primeiro o proxy reverso Nginx com certificados TLS válidos respondendo na origem. Em seguida, reduza o TTL da zona existente antes de apontar os registros A e CNAME para o novo IP no painel do Registro.br.
É necessário usar o DNS próprio do Registro.br para apontar para o Nginx?
Sim, você pode utilizar os servidores DNS autoritativos gratuitos fornecidos pelo próprio Registro.br ou servidores DNS externos. O importante é criar corretamente os registros do tipo A apontando diretamente para o endereço IPv4 do seu servidor Nginx.
Qual diretiva do Nginx preserva o IP original do visitante no proxy reverso?
A diretiva proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for combinada com proxy_set_header X-Real-IP $remote_addr garante que a aplicação de destino receba o endereço IP de origem do cliente em vez do IP local do proxy.
Quanto tempo demora a propagação de DNS alterada no Registro.br?
As alterações de registros A e CNAME na zona de DNS do Registro.br costumam ser publicadas em intervalos de duas horas. Durante esse período de transição, ambos os servidores antigos e novos podem receber tráfego simultaneamente sem causar erros.
Conclusão
- Mantenha o servidor antigo ativo e com a aplicação online durante todo o intervalo de transição do Registro.br (janela mínima de 2 a 4 horas).
- Utilize sempre
systemctl reload nginxem vez derestartpara processar novas diretivas sem abortar conexões TCP existentes. - Assegure o repasse completo dos cabeçalhos
X-Forwarded-ForeX-Forwarded-Protopara manter os logs de segurança e rotinas de autenticação íntegros na aplicação interna.
Leia também
- Passo a passo: proxy reverso no Apache para Node.js com SSL
- Checklist: como hospedar múltiplos sites com Docker e Nginx
- Otimizar Node-RED Dashboard 2.0 no FreeBSD 14.3 com Nginx e SSL
Precisa de ajuda com servidores e proxy reverso?
Estruture aplicações resilientes com balanceamento de tráfego e latência reduzida utilizando instâncias com isolamento de recursos dedicado e rede de alta capacidade.