EIVUS

Rate limiting de API no seu servidor

Proteja APIs com rate limit e throttling; ferramentas e estratégias.

Voltar ao blog

Rate limiting evita abuso e uso injusto. Implemente na app (middleware) ou na borda (WAF, nginx). Use limites por IP ou por chave; retorne 429 e Retry-After. Redes tier-III muitas vezes têm proteção DDoS a montante.

Por que rate limit

  • Abuso: Bots e scrapers podem sobrecarregar sua API ou consumir cota. Rate limits limitam quanto um cliente pode fazer.
  • Uso justo: Garante que um usuário pesado não prive os outros. Limites por usuário ou chave suportam cota e níveis.
  • Custo e estabilidade: Reduz picos de tráfego inesperados e ajuda a dimensionar e orçar capacidade.

Onde implementar

  • Aplicação: Middleware ou decorator que verifica contagem de requisições por chave/IP e retorna 429 quando passar do limite. Controle total; pode usar Redis para limites distribuídos.
  • Borda: Nginx limit_req, WAF ou API gateway. Descarrega a app; consistente em todos os endpoints. Combine com nível de app para limites por usuário/chave.
  • Provedor: Alguns hosts oferecem mitigação DDoS e rate limiting básico na borda. Complementa limites de app/borda.

Como implementar

  • Por IP: Simples; bom para tráfego anônimo ou não autenticado. Pode ser contornado com muitas IPs (botnets).
  • Por chave de API ou usuário: Melhor para APIs autenticadas; prende o limite à identidade. Use quando tiver chaves ou sessões.
  • Janela deslizante ou fixa: Conte requisições em uma janela de tempo; deslizante é mais justo. Retorne 429 Too Many Requests e header Retry-After para clientes fazerem backoff.

Resumo

Rate limit na app ou na borda; use por IP ou por chave; retorne 429 e Retry-After. Reduz abuso e garante uso justo; combine com proteção DDoS do provedor para ataques volumétricos.

Clientes que confiam na gente