Dicas e Soluções

Erro 503 no Magento 2: 8 testes para recuperar a loja com segurança

Técnico investigando erro 503 do Magento 2 em corredor de servidores

Erro 503 no Magento 2: 8 testes para recuperar a loja com segurança

O erro 503 no Magento 2 indica que a loja não conseguiu atender à requisição naquele momento. O motivo pode ser um modo de manutenção esquecido após o deploy, mas também pode estar no Nginx ou Apache, PHP-FPM, proxy reverso, banco de dados, cache, mecanismo de busca ou falta de recursos no servidor.

Antes de reiniciar serviços ou apagar caches, registre a URL afetada, o horário, o conteúdo da resposta e as últimas alterações realizadas. Os oito testes abaixo ajudam a encontrar a camada responsável e recuperar a operação sem esconder evidências importantes.

O que significa o erro 503 no Magento 2?

O código HTTP 503 representa uma indisponibilidade temporária do serviço. No Magento, ele pode ser devolvido intencionalmente quando o modo de manutenção está ativo. Também pode ser gerado por componentes posicionados antes da aplicação, como balanceador, CDN, Varnish, servidor web ou proxy, quando nenhum backend saudável consegue responder.

Por isso, visualizar uma página com “Service Unavailable” não confirma que o Magento entrou em manutenção. O primeiro passo é descobrir quem gerou a resposta.

1. Descubra qual camada está devolvendo o 503

Teste uma página pública, uma imagem estática e, se possível, o acesso direto ao servidor de origem. No terminal, use o cabeçalho da resposta como ponto inicial:

curl -I https://www.exemplo.com.br/
curl -sS -D - -o /dev/null https://www.exemplo.com.br/

Observe campos como server, via, identificadores do proxy e cabeçalhos de cache. Compare também o comportamento da loja, painel administrativo e arquivos estáticos.

  • Se apenas páginas PHP falham, investigue a aplicação e o PHP-FPM.
  • Se todo o domínio falha, verifique servidor web, proxy, DNS e infraestrutura.
  • Se o problema acontece apenas em uma rota, procure uma exceção específica do Magento ou de uma extensão.
  • Se o 503 aparece de forma intermitente, considere saturação, limite de workers ou backend instável.

2. Verifique o modo de manutenção do Magento

A partir da raiz do projeto, execute os comandos com o mesmo usuário responsável pelos arquivos e processos da aplicação:

php bin/magento maintenance:status
ls -la var/.maintenance*

Se a manutenção estiver ativa sem necessidade, confirme primeiro que nenhum deploy, atualização de banco ou procedimento técnico continua em andamento. Somente depois desative:

php bin/magento maintenance:disable

Não remova o arquivo de controle manualmente como primeira opção. O comando do Magento mantém o procedimento mais previsível. Caso o status volte a ser ativado, procure automações de deploy, tarefas agendadas ou scripts que estejam recriando a condição.

3. Confirme se uma implantação ficou incompleta

Um deploy interrompido pode deixar a manutenção ativa ou produzir uma combinação inconsistente de código, dependências e arquivos estáticos. Verifique o histórico da automação, o último commit implantado e a saída dos comandos executados.

Também confirme se existem processos ainda ativos antes de iniciar uma segunda implantação:

ps aux | grep -E 'bin/magento|composer' | grep -v grep

Evite apagar indiscriminadamente diretórios como generated, pub/static ou var em produção. A limpeza errada pode ampliar a indisponibilidade. Se o problema começou após uma alteração, prefira concluir o deploy validado ou executar um rollback planejado.

4. Consulte os logs no mesmo intervalo da falha

Analise primeiro os registros próximos ao horário exato do 503. Dependendo da configuração, os arquivos relevantes podem incluir:

tail -n 150 var/log/system.log
tail -n 150 var/log/exception.log
tail -n 150 var/log/debug.log

Depois, consulte os logs do Nginx ou Apache, PHP-FPM, proxy e serviços gerenciados. Procure por sinais como falta de conexão com upstream, timeout, limite de workers, memória esgotada, permissão negada ou dependência indisponível.

Se os registros mostrarem demora generalizada em vez de uma falha direta, siga um diagnóstico por camada. Este guia sobre como localizar gargalos no Magento 2 ajuda a separar PHP, banco, cache e frontend.

5. Verifique disco, memória, CPU e inodes

O servidor pode continuar acessível por SSH enquanto a aplicação já não consegue criar arquivos, iniciar processos ou atender novas requisições. Verifique os recursos sem executar limpezas automáticas:

df -h
df -i
free -m
uptime

Disco cheio pode impedir gravações em logs, sessões, arquivos temporários e processos de deploy. A falta de inodes produz efeito semelhante, mesmo quando ainda existe espaço em gigabytes. Memória pressionada pode encerrar workers ou provocar troca excessiva para disco.

Antes de excluir arquivos, identifique o que ocupa espaço e preserve logs relacionados ao incidente. Não remova diretórios de banco, cache ou sistema sem entender sua função.

6. Valide servidor web e PHP-FPM

Consulte o estado dos serviços usando os nomes adotados na sua distribuição e versão do PHP. Exemplos comuns:

systemctl status nginx
systemctl status apache2
systemctl status php-fpm

O serviço do PHP pode ter um nome específico, como php8.x-fpm. Se estiver parado, descubra a causa nos logs antes de reiniciá-lo. Quando ele está ativo, mas o proxy informa ausência de upstream saudável, verifique socket, porta, permissões, limites do pool e quantidade de workers ocupados.

Reiniciar pode restaurar temporariamente o atendimento, mas não corrige vazamento de memória, consulta lenta, extensão defeituosa ou capacidade insuficiente. Registre o estado anterior e acompanhe se o consumo volta a crescer.

7. Teste as dependências usadas pelo Magento

Uma loja pode devolver 503 quando o PHP está funcionando, mas não consegue se comunicar com uma dependência essencial. Valide separadamente:

  • conectividade e autenticação no banco de dados;
  • Redis ou Valkey usados para cache e sessões;
  • Varnish e seus backends configurados;
  • OpenSearch utilizado pelo catálogo;
  • filas e serviços externos acionados durante a requisição.

Não limpe todo o Redis como teste inicial. Se sessões e cache compartilharem a instância ou houver múltiplas aplicações no mesmo serviço, essa ação pode desconectar clientes e afetar carrinhos. Para revisar a arquitetura, consulte o guia de migração segura de cache e sessões entre Redis e Valkey.

Se o 503 surge somente no fechamento da compra, reproduza a chamada que falha e analise o console e a rede do navegador. O roteiro para quando o checkout Magento 2 fica carregando complementa essa investigação.

8. Valide a recuperação antes de encerrar o incidente

Depois de corrigir a causa, não teste apenas a página inicial. Valide uma amostra dos fluxos críticos:

  • página de categoria e produto;
  • busca e navegação de catálogo;
  • login e sessão do cliente;
  • adição e atualização do carrinho;
  • cálculo de frete e carregamento dos pagamentos;
  • painel administrativo;
  • cron, consumidores de fila e indexadores.

Monitore por alguns minutos os códigos HTTP, logs, memória, workers e tempo de resposta. Se houve reinício, confirme que a recuperação não foi apenas temporária. Registre a causa, o procedimento aplicado e uma ação preventiva, como alerta de disco, ajuste de pool ou melhoria na rotina de deploy.

O que não fazer diante de um erro 503

  • Não reinicie todos os serviços simultaneamente sem registrar o estado anterior.
  • Não apague caches, sessões e arquivos gerados como tentativa genérica.
  • Não desative o modo de manutenção durante uma atualização de banco em andamento.
  • Não altere registros diretamente no banco para tentar liberar a loja.
  • Não conclua que o problema foi resolvido após testar somente uma URL.

Perguntas frequentes

O erro 503 sempre significa que o Magento está em manutenção?

Não. O modo de manutenção é uma causa possível, mas o 503 também pode vir do servidor web, proxy, PHP-FPM, falta de recursos ou indisponibilidade de uma dependência.

Como desativar o modo de manutenção do Magento 2?

Na raiz do projeto, confirme o estado com php bin/magento maintenance:status. Se não houver deploy ou atualização em andamento, use php bin/magento maintenance:disable.

É seguro limpar o cache para corrigir um erro 503?

Nem sempre. A limpeza pode ser irrelevante para a causa e ainda remover evidências ou aumentar a carga da aplicação. Primeiro identifique qual camada está devolvendo o erro.

Reiniciar o PHP-FPM resolve o problema?

Pode recuperar temporariamente o serviço quando os workers estão travados ou esgotados, mas é necessário investigar logs, consumo de memória, limites do pool e requisições lentas para evitar recorrência.

Conclusão

O erro 503 no Magento 2 deve ser tratado como um problema de disponibilidade que pode envolver aplicação e infraestrutura. Identificar quem gerou a resposta, preservar os logs e testar cada dependência é mais seguro do que reiniciar ou limpar tudo sem diagnóstico.

Se a loja continua indisponível ou o 503 retorna após a recuperação, uma análise técnica do ambiente pode localizar a causa e reduzir o risco de novas interrupções. A equipe do SuporteMagento.com.br pode auxiliar no diagnóstico do Magento, PHP, cache, banco de dados e infraestrutura.