Servidor & DevOps 49 visualizações

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

Ver no WHMCS

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.
  3. Tela do Gerenciador de Arquivos no cPanel
  4. 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).
  5. Crie um arquivo de configuração: Clique em Novo Arquivo e digite o nome nginx.conf. Clique em Salvar.
  6. 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)

Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.