Como resolver o erro 429 Too Many Requests
O erro 429 Too Many Requests é um código de status HTTP que indica que um usuário enviou muitas solicitações em um determinado período de tempo. Ele serve como um mecanismo de limitação de taxa para proteger o servidor de ser sobrecarregado por solicitações excessivas, seja devido a um script mal configurado, rastreadores ou ataques de força bruta. A solução desse erro é fundamental para garantir que os usuários legítimos possam acessar seu site sem interrupções.
Este guia o orientará sobre as causas do erro 429 e as soluções passo a passo para resolvê-lo.
O que causa o erro 429 Too Many Requests?
O erro 429 Too Many Requests é normalmente causado por:
- Limitação de taxa: O servidor ou um firewall de aplicativo (como Cloudflare, Sucuri ou um plug-in) está limitando o número de solicitações permitidas de um usuário, endereço IP ou navegador específico.
- Bots e rastreadores: Bots ou crawlers podem enviar várias solicitações a um site, fazendo com que o servidor acione a limitação de taxa.
- Plug-ins ou scripts mal configurados: Certos plug-ins do WordPress, solicitações de API ou scripts podem enviar inadvertidamente muitas solicitações ao servidor, causando o erro.
- Ataques de força bruta: Tentativas repetidas de login ou ameaças à segurança, como ataques de força bruta, podem acionar a limitação de taxa nas páginas de login.
Como corrigir o erro 429 Too Many Requests: Soluções passo a passo
Etapa 1: Identificar a origem do excesso de solicitações
Para resolver o erro 429, primeiro você precisa identificar o que está causando o excesso de solicitações:
- Verifique os registros do servidor: Os logs do servidor podem fornecer informações sobre quais endereços IP ou usuários estão enviando muitas solicitações.
- Acesse seus registros usando o cPanel, SSH ou FTP.
- Procure por endereços IP ou scripts que estejam fazendo solicitações frequentes.
- Use plug-ins de segurança: Se estiver usando o WordPress, plug-ins como Wordfence ou iThemes Security podem ajudá-lo a monitorar e bloquear atividades suspeitas.
Etapa 2: Aumente os limites de taxa em seu servidor
Se estiver ocorrendo o erro 429 devido ao tráfego legítimo que excede os limites de taxa do servidor, talvez seja necessário aumentar os limites de taxa do servidor.
- Ajuste os limites de taxa em .htaccess (para servidores Apache):
- Acesse seu arquivo .htaccess via FTP ou cPanel.
- Adicione o seguinte código para permitir mais solicitações:RewriteEngine On RewriteCond %{REQUEST_METHOD} ^(POST|GET) RewriteCond %{REQUEST_URI} ^/sua-page-url/ RewriteCond %{REMOTE_ADDR} ^(.*)$ RewriteRule .* – [F,L]
- Este exemplo limita a taxa de solicitações a uma página específica. Ajuste as condições conforme necessário para suas necessidades.
- Servidores Nginx:
- Acesse o arquivo nginx.conf e ajuste as configurações de limitação de taxa:http { limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; server { location / { limit_req zone=one burst=20 nodelay; } } }
- Essa configuração permite 10 solicitações por segundo e uma sequência de 20 solicitações sem atraso. Ajuste os valores conforme necessário.
- Acesse o arquivo nginx.conf e ajuste as configurações de limitação de taxa:
Etapa 3: Desativar temporariamente os plug-ins (WordPress)
No WordPress, os plug-ins às vezes podem ser a causa do erro 429 devido a solicitações de API ou configurações de limitação de taxa:
- Faça login no painel do WordPress.
- Vá para Plugins > Plugins instalados.
- Desative os plug-ins que possam interagir com APIs externas, como plug-ins de SEO, plug-ins de cache ou plug-ins de segurança.
- Verifique seu site para ver se o erro persiste.
- Reative os plug-ins um a um para identificar qual deles está causando o problema.
Dica: Mantenha sempre seus plug-ins atualizados para evitar problemas de compatibilidade que possam levar a erros.
Etapa 4: Ajuste os limites de solicitação da API
Se estiver trabalhando com APIs (como APIs de terceiros ou scripts personalizados), certifique-se de que suas solicitações não excedam os limites de taxa definidos pelo provedor de API:
- Verifique a documentação da API: Consulte os limites de taxa na documentação da API e ajuste seus scripts para respeitar esses limites.
- Limite as solicitações de API: Use o estrangulamento ou a limitação de taxa em suas solicitações de API para evitar chamadas excessivas. Por exemplo, se estiver usando JavaScript, você pode implementar a limitação com bibliotecas como a lodash:_.throttle(() => { // Sua chamada de API aqui }, 2000);
- Este exemplo envia uma solicitação de API a cada 2 segundos.
Etapa 5: Bloquear ou limitar bots e rastreadores
Bots e rastreadores podem causar solicitações excessivas, levando ao erro 429:
- Bloquear bots indesejados no .htaccess:
- Adicione o seguinte código ao .htaccess para bloquear bots ruins conhecidos:RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^.*(BadBot|AnotherBadBot).*$ [NC] RewriteRule .* – [F,L]
- Substitua BadBot e AnotherBadBot pelos nomes dos bots que você deseja bloquear.
- Adicione o seguinte código ao .htaccess para bloquear bots ruins conhecidos:
- Use um firewall de aplicativo da Web (WAF):
- Use serviços como Cloudflare, Sucuri ou Wordfence (para WordPress) para bloquear bots mal-intencionados e controlar o tráfego do seu site.
- Essas ferramentas podem detectar e bloquear automaticamente IPs suspeitos que geram solicitações excessivas.
Etapa 6: Entre em contato com o provedor de hospedagem
Se você não conseguir identificar a origem do erro 429, seu provedor de hospedagem na Web poderá fornecer informações:
- Abra um tíquete de suporte com seu provedor de hospedagem e descreva o problema.
- Peça que ele verifique os registros do servidor quanto a atividades incomuns ou regras de limitação de taxa.
- Eles podem aumentar temporariamente o limite de taxa do servidor ou ajudá-lo a bloquear o tráfego problemático.
Etapa 7: ajustar as configurações do plug-in de segurança (WordPress)
Se você estiver usando um plug-in de segurança como o Wordfence ou o iThemes Security, verifique as configurações de limitação de taxa:
- Vá para as configurações do plug-in em seu painel do WordPress.
- Procure as configurações de limitação de taxa ou de proteção contra força bruta.
- Ajuste o limite das tentativas de login e as taxas de solicitação para que sejam mais brandas.
- Salve as alterações e teste seu site para ver se o erro foi resolvido.
Etapa 8: Limpar o cache e os cookies do navegador
Às vezes, o erro 429 pode estar armazenado em cache em seu navegador:
- Limpe o cache no Chrome:
- Vá para Configurações > Privacidade e segurança > Limpar dados de navegação.
- Selecione Imagens e arquivos armazenados em cache e Cookies e outros dados do site e, em seguida, clique em Limpar dados.
- Tente o modo de navegação anônima: Se a limpeza do cache não funcionar, tente acessar o site no modo de navegação anônima para descartar problemas de cache.
Resumo
O erro 429 Too Many Requests pode ser causado por configurações de limitação de taxa, solicitações excessivas de API ou tráfego malicioso. Aqui está uma rápida recapitulação de como corrigir o problema:
- Identifique a origem do excesso de solicitações usando os registros do servidor.
- Aumente os limites de taxa em .htaccess ou nginx.conf se o tráfego legítimo estiver causando o problema.
- Desative temporariamente os plug-ins para identificar e corrigir scripts mal configurados.
- Ajuste os limites de solicitação de API e use a limitação para evitar exceder os limites de taxa de API.
- Bloqueie bots e use um Web Application Firewall para gerenciar o tráfego.
- Entre em contato com seu provedor de hospedagem para obter suporte se o problema persistir.
Seguindo essas etapas, você pode resolver o erro 429 e garantir que seu site permaneça acessível a usuários legítimos.