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:
- Entre no painel da GeHost: Acesse painel.gehost.com.br com seu usuário e senha.
- Abra o Gerenciador de Arquivos: No painel, localize o menu Arquivos e clique em Gerenciador de Arquivos.

- 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).
- Crie um arquivo de configuração: Clique em Novo Arquivo e digite o nome nginx.conf. Clique em Salvar.
- 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/spor5r/sou1r/s.
- Salve as alterações: Clique em Salvar no editor.
- Verifique o acesso: Acesse sua API via navegador ou ferramenta como Postman. Se tudo estiver certo, a API responderá normalmente.
- 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/seburst=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.confem pastas fora depublic_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)