AULA 61 MÓDULO 8 infra ⏱ 50 min

Serviços em Produção

PM2: cluster mode, restart automático. Nginx como reverse proxy. Banco gerenciado. Monitoramento e error tracking.

PM2Nginxclusterreverse proxySentryUptimeprodução

Serviços essenciais em produção

Uma API em produção é mais que código Node rodando. Precisa de monitoramento, restart automático, load balancer, banco gerenciado e alertas.

PM2 / systemd
Process manager: restart automático, cluster mode, logs.
Nginx
Reverse proxy, SSL termination, static files, rate limit.
PostgreSQL gerenciado
Neon, Supabase, Railway, RDS. Backups, réplicas, sem gerenciar disco.
Uptime monitoring
BetterStack, Datadog. Alert no Slack quando API cai.
Error tracking
Sentry. Captura exceções com stack trace em produção.

PM2 — process manager

PM2 é o gerenciador de processos mais usado para Node.js. Restart automático, modo cluster (múltiplos cores), logs rotacionados e zero-downtime deploys.

⚙️
cluster mode
pm2 start app.js -i max usa todos os núcleos da CPU. Node.js é single-thread, mas com cluster, múltiplos processos respondem requisições em paralelo.
javascript
// ecosystem.config.js — configuração PM2
module.exports = {
  apps: [{
    name:         'minha-api',
    script:       './server.js',
    instances:    'max',     // 1 por núcleo de CPU
    exec_mode:    'cluster',
    env_production: {
      NODE_ENV: 'production',
      PORT:     '3000'
    },
    max_memory_restart: '500M', // reinicia se vazar memória
    error_file:  './logs/err.log',
    out_file:    './logs/out.log',
    log_date_format: 'YYYY-MM-DD HH:mm:ss'
  }]
}

# nginx como reverse proxy
# server {
#   listen 443 ssl;
#   server_name api.minha-empresa.com;
#   location / {
#     proxy_pass http://localhost:3000;
#     proxy_set_header X-Forwarded-Proto $scheme;
#     proxy_set_header Host $host;
#   }
# }
quiz · aula 61
Teste seus conhecimentos
0/3 respondidas
QUESTÃO 01
O que é o cluster mode do PM2?
QUESTÃO 02
Para que serve o max_memory_restart?
QUESTÃO 03
Por que usar Nginx na frente do Node.js?
0/3