Docker e aplicações
Como instalar Node.js no servidor Linux e manter a aplicação no ar
Instalar o Node.js é a parte fácil. Para uma aplicação em produção, você também precisa de um gerenciador de processos e de um proxy reverso. Veja o caminho completo no Ubuntu.
Como instalar Node.js no servidor Linux e manter a aplicação no ar
Escolha a versão: use a LTS
O Node.js tem versões LTS (suporte de longo prazo) e versões Current. Em servidores, use sempre uma LTS ativa: ela recebe correções de segurança por mais tempo. O pacote nodejs dos repositórios do Ubuntu costuma estar desatualizado.
Opção 1: NodeSource (para o sistema todo)
curl -fsSL https://deb.nodesource.com/setup_lts.x -o nodesource_setup.sh
sudo -E bash nodesource_setup.sh
sudo apt-get install -y nodejs
node -v && npm -vOpção 2: nvm (por usuário, várias versões)
O nvm instala o Node.js na pasta do usuário e permite ter várias versões lado a lado, útil quando o servidor roda projetos diferentes. Instale seguindo as instruções do repositório oficial do nvm e depois:
nvm install --lts
nvm alias default 'lts/*'Mantenha a aplicação rodando com PM2
Um processo iniciado com node app.js no terminal termina quando a sessão SSH fecha. O PM2 mantém o processo ativo, reinicia em caso de falha e sobe a aplicação junto com o servidor:
sudo npm install -g pm2
pm2 start app.js --name minha-api
pm2 save
pm2 startup # mostra o comando para iniciar com o sistema; execute o que ele indicarComandos do dia a dia: pm2 status, pm2 logs minha-api, pm2 restart minha-api.
Publique atrás do Nginx
A aplicação escuta em uma porta local (por exemplo, 3000) e o Nginx recebe o tráfego nas portas 80 e 443, cuidando do HTTPS e encaminhando as requisições:
server {
server_name api.exemplo.com.br;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}Não rode como root
Node.js pronto para produção
A hospedagem Node.js em VPS é entregue com Node.js LTS, PM2 e Nginx configurados.