Como instalar e configurar o PM2 em servidores Linux
A implantação é um dos estágios mais cruciais e conclusivos do desenvolvimento de software. Uma estratégia de implantação adequada é vital para fornecer a melhor experiência aos usuários, ao mesmo tempo que utiliza seus serviços de maneira eficiente. No entanto, esse processo também traz consigo seu próprio conjunto de desafios.
Node.js, o tempo de execução do JavaScript de código aberto, é uma escolha popular para construir a infraestrutura de back-end do seu aplicativo, permitindo que você execute o JavaScript fora dos navegadores da web. Mas e se seu aplicativo Node.js travar na produção? Descubra como você pode evitar tais cenários neste artigo.
O que é PM2 e por que você precisa dele?
PM2 é um gerenciador de processo daemon que permite que você mantenha aplicativos Node.js ativos para sempre, recarregue-os sem tempo de inatividade, gerencie o registro de aplicativos, monitoramento e clustering.
Imagine que seu servidor da web Node.js travou devido a algum erro de tempo de execução. Sem usar algo como PM2, você teria que rastrear manualmente o status de seu aplicativo periodicamente e reiniciá-lo sempre que ele cair. PM2 ajuda a automatizar esse processo e mantém seu aplicativo online 24 horas por dia, 7 dias por semana, mesmo se algo der errado.
Instalando PM2 em servidores Linux
Antes de instalar o PM2, certifique-se de ter Node.js e NPM instalados em seu servidor Linux para baixar o pacote PM2 dos repositórios do Node Package Manager .
Depois de colocar o Node.js em execução no seu servidor, instale o PM2 executando este comando:
npm install -g pm2
Saída:
O sinalizador -g no comando acima significa Global e permite que você use PM2 em todos os seus aplicativos Node.js. Pode ser necessário adicionar sudo no início do comando, dependendo das permissões de sua conta de usuário.
Executando aplicativos de nó com PM2
Assim que o processo de instalação for concluído, navegue até o diretório onde reside seu aplicativo Node.js usando o comando cd . Dentro do diretório do projeto, você pode executar um arquivo JavaScript usando PM2 com o comando fornecido a seguir:
pm2 start filename.js
Por exemplo, se o ponto de entrada para seu aplicativo Node.js residir dentro do arquivo index.js , é assim que você pode executar o arquivo:
pm2 start index.js
Caso precise fazer alguma alteração em seu aplicativo, você pode fazer isso usando um editor de texto de linha de comando para editar o código e, em seguida, reiniciar sua instância de aplicativo PM2 com este comando:
pm2 restart filename.js
Em vez disso, para encerrar completamente o aplicativo, use este comando:
pm2 stop filename.js
Em vez de executar um único arquivo com PM2, você também pode executar scripts NPM presentes no arquivo package.json de seu aplicativo Node.js. Por exemplo, se você deseja executar o script de inicialização , estruture o comando desta maneira:
pm2 start npm --name <app_name> -- start
Ver registros e estatísticas
Para monitorar os erros que podem surgir durante o tempo de execução, o PM2 oferece uma opção para verificar os logs que seu aplicativo gera. Veja como você pode visualizá-los:
pm2 logs <app_name>
Para monitorar todos os processos em execução, PM2 vem com um painel prático baseado em terminal para observar o uso de CPU e RAM, que você pode acessar com este comando:
pm2 monit
Para visualizar o restante dos detalhes e metadados, como a versão do aplicativo, o número de reinicializações, tempo de atividade, argumentos de script e muito mais:
pm2 show <app_name>
Implante aplicativos Node.js para produção com facilidade
Usar um gerenciador de processos como o PM2 pode reduzir enormemente a sobrecarga de ter que monitorar constantemente o status e o tempo de atividade de seu aplicativo Node.js. Com seu balanceador de carga integrado, você pode esperar maior desempenho e confiabilidade para seus serviços.
Falando em implantação, você provavelmente usaria uma máquina virtual Linux para implantar aplicativos na nuvem. Não tem certeza sobre como você poderia fazer isso? Aqui está um guia para você começar a usar as máquinas virtuais no Azure.