Como hospedar uma API REST no seu VPS
APIs alimentam apps mobile, front-ends em React/Vue, integrações e automações. Hospedá-las em um VPS dá controle total sobre desempenho, custos e segurança. Veja as boas práticas, independentemente da linguagem.
Arquitetura recomendada
Cliente → Nginx (HTTPS, rate limit, CORS) → Aplicação (127.0.0.1:porta) → Banco de dados / Redis
- A aplicação escuta apenas no localhost;
- O Nginx recebe as conexões públicas, termina o TLS e repassa as requisições;
- Banco de dados e Redis nunca expostos à internet.
1. Mantenha a aplicação sempre no ar
Use um gerenciador de processos:
- Node.js: PM2 ou systemd;
- Python: Gunicorn/Uvicorn + systemd;
- PHP: PHP-FPM;
- Go/Rust/Java: binário/JAR como serviço systemd;
- Qualquer linguagem: Docker com
restart: unless-stopped.
2. Nginx como proxy reverso
limit_req_zone $binary_remote_addr zone=api:10m rate=20r/s;
server {
listen 443 ssl;
http2 on;
server_name api.seudominio.com.br;
# certificados configurados pelo Certbot
client_max_body_size 10M;
location / {
limit_req zone=api burst=40 nodelay;
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 60s;
}
}
Em versões do Nginx anteriores à 1.25.1, use
listen 443 ssl http2;no lugar da diretivahttp2 on;.
3. HTTPS obrigatório
Emita o certificado com o Certbot e redirecione HTTP para HTTPS. Tokens e dados nunca devem trafegar sem criptografia.
4. CORS configurado corretamente
Se a API é consumida por um front-end em outro domínio, permita apenas as origens necessárias (nunca * em APIs autenticadas com cookies). Configure na aplicação ou no Nginx.
5. Autenticação e segurança
- Tokens (JWT, OAuth) ou chaves de API com escopo e expiração;
- Validação rigorosa de entrada;
- Rate limiting — no Nginx e/ou na aplicação;
- Mensagens de erro sem detalhes internos em produção;
- Segredos em variáveis de ambiente, nunca no código.
6. Logs estruturados
Registre requisições em formato JSON com método, rota, status, tempo de resposta e um ID de requisição. Isso facilita rastrear problemas e integrar com ferramentas de análise.
7. Healthcheck
Crie uma rota como GET /health que verifique a aplicação e suas dependências. Use-a para monitoramento externo (Uptime Kuma, por exemplo).
8. Desempenho
- Cache de respostas frequentes no Redis;
- Pool de conexões com o banco;
- Índices nas consultas mais usadas;
- Paginação em listagens;
- Compressão (gzip/brotli) de respostas JSON;
- Disco NVMe para o banco e servidor perto dos usuários para menor latência — essencial para apps mobile no Brasil.
9. Versionamento
Use prefixos como /v1/ para evoluir a API sem quebrar clientes existentes.
10. Escalando
Quando um servidor não bastar:
- Faça upgrade vertical (mais vCPU/RAM);
- Separe o banco de dados em outro VPS;
- Coloque várias instâncias da API atrás de um balanceador (Nginx, HAProxy).
Conclusão
Uma API bem hospedada é rápida, segura e fácil de manter. Coloque a sua em um VPS-NVME-BR da VittHost, com NVMe e servidores no Brasil para respostas com baixa latência.Use o cupom SP-VITT20 e ganhe 20% de desconto na primeira fatura enquanto a promoção estiver ativa.