Como configurar rate limiting no Nginx para proteger uma API contra abuso imprimir

  • 0

Como configurar rate limiting no Nginx para proteger uma API contra abuso

Olá, querido(a) desenvolvedor(a) ou administrador(a) de servidor! Aqui é o Sensei da GeHost, seu parceiro no mundo da hospedagem segura e eficiente. 🌟

Se você está cuidando de uma API em sua aplicação, já deve ter pensado: "e se alguém abusar dessa API?". Pois é, esse é um risco real — e felizmente, temos uma ferramenta poderosa para nos proteger: o rate limiting no Nginx.

Com esse guia, você vai aprender a configurar limitações de acesso de forma simples, segura e eficaz — tudo dentro do seu ambiente de hospedagem com cPanel, sem precisar de acesso root ou conhecimento avançado de servidor.

Dica do Sensei: O rate limiting é como um "guarda de entrada" inteligente. Ele permite que usuários legítimos acessem sua API, mas impede que bots ou pessoas mal-intencionadas a sobrecarreguem com milhares de requisições por minuto.

Passo a passo: como ativar rate limiting no Nginx via cPanel

Apesar de o Nginx ser um servidor web poderoso, ele não é diretamente acessível via cPanel. Mas não se preocupe — a GeHost já configura o Nginx com segurança e flexibilidade. O segredo está em usar arquivos de configuração personalizados dentro da sua conta.

Vamos lá, com calma e certeza:

  1. Entre no painel da GeHost: Acesse painel.gehost.com.br com seu usuário e senha.
  2. Abra o Gerenciador de Arquivos: No painel, localize o menu Arquivos e clique em Gerenciador de Arquivos.Tela do Gerenciador de Arquivos no cPanel
  3. Navegue até a pasta pública: No Gerenciador de Arquivos, vá até a pasta public_html (ou o diretório onde sua API está hospedada).
  4. Crie um arquivo de configuração: Clique em Novo Arquivo e digite o nome nginx.conf. Clique em Salvar.
  5. Adicione o código de rate limiting: Clique duas vezes no arquivo nginx.conf para editá-lo. Cole o código abaixo:
# Limita requisições por IP
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;

# Aplica o limite à sua API
location /api/ {
    limit_req zone=api burst=20 nodelay;
    # Aqui você pode adicionar outras regras, como proxy para sua aplicação
    # Exemplo: proxy_pass http://127.0.0.1:3000;
}

Explicando o código:

  • 10r/s: permite até 10 requisições por segundo por IP.
  • burst=20: permite um "pico" de até 20 requisições, caso o tráfego venha em ondas.
  • nodelay: evita atraso no primeiro burst (ideal para APIs).

Se quiser tornar o limite mais rigoroso, troque 10r/s por 5r/s ou 1r/s.

  1. Salve as alterações: Clique em Salvar no editor.
  2. Verifique o acesso: Acesse sua API via navegador ou ferramenta como Postman. Se tudo estiver certo, a API responderá normalmente.
  3. Teste o limite (opcional): Use uma ferramenta como curl ou ab para simular muitas requisições. Você verá que, após o limite, o Nginx retornará um erro 429 (Too Many Requests).

Quando usar esse recurso?

Este tipo de proteção é ideal para:

  • APIs públicas ou de acesso restrito.
  • Formulários de login ou cadastro que podem ser alvos de tentativas de força bruta.
  • Qualquer endpoint que receba muitas requisições e precise de proteção contra abuso.

Atenção do Sensei: Se você não tiver certeza sobre como ajustar os valores, comece com 10r/s e burst=20. Depois, ajuste com base no comportamento real do seu tráfego. Se precisar de ajuda, nosso suporte está à disposição!

Como saber se está funcionando?

O Nginx registra erros quando o limite é ultrapassado. Você pode verificar esses logs no painel, em Logs do Site (dentro de Métricas ou Logs).

Se a API começar a retornar 429 (Too Many Requests) para IPs que estão fazendo muitas requisições, você está no caminho certo! 🎯

Importante: o que não fazer

  • Não edite arquivos do Nginx diretamente no servidor (sem acesso root).
  • Não use nomes de arquivos como nginx.conf em pastas fora de public_html.
  • Não altere configurações sem testar em ambiente de desenvolvimento primeiro.

Se tiver dúvidas, não hesite em entrar em contato com o suporte da GeHost — estamos aqui para te ajudar, com calor, paciência e dedicação. 💙

Até a próxima, com muita energia positiva e código limpo!

Com carinho,
O Sensei da GeHost
G e Soluções e Eventos LTDA (CNPJ: 46.647.904/0001-04)


Esta resposta lhe foi útil?

« Retornar