Pentest | TechCruz #keepsecurity

Office Address

123/A, Miranda City Likaoli
Prikano, Dope

Phone Number

+0989 7876 9865 9
+(090) 8765 86543 85

How to Install PM2 to Run Node.js Apps on Production Server

How to Install PM2 to Run Node.js Apps on Production Server

  • Jan 26, 2023
  • Douglas Cruz by Douglas Cruz
  • Dev&Ops

#ATUALIZADO EM 07/11/2023

O PM2 é um gerenciador de processo de nível de produção de código aberto, avançado, eficiente e multiplataforma gratuito para Node.js com um balanceador de carga integrado. Funciona em Linux, MacOS e Windows. Ele oferece suporte ao monitoramento de aplicativos, gerenciamento eficiente de microsserviços/processos, execução de aplicativos em modo de cluster, inicialização e desligamento suaves de aplicativos.

Ele mantém seus aplicativos “ vivos para sempre ” com reinicializações automáticas e pode ser ativado para iniciar na inicialização do sistema, permitindo configurações ou arquiteturas de Alta Disponibilidade ( HA ).

Notavelmente, o PM2 permite que você execute seus aplicativos no modo de cluster sem fazer nenhuma alteração em seu código (isso também depende do número de núcleos de CPU em seu servidor). Ele também permite que você gerencie facilmente os logs de aplicativos e muito mais.

Além disso, ele também possui suporte incrível para os principais frameworks Node.js , como Express , Adonis Js , Sails , Hapi, contudo sem a necessidade de nenhuma alteração de código. O PM2 está sendo usado por empresas como IBM , Microsoft , PayPal e muito mais.

Neste artigo, explicaremos como instalar e usar o PM2 para executar aplicativos Nodejs no servidor de produção Linux. Vamos criar um aplicativo para demonstrar alguns dos recursos fundamentais do PM2 para você começar a usá-lo.

#Instalar Nodejs e NPM no Linux

1. Instalar os pacotes Node.js e NPM conforme mostrado.

No Debian/Ubuntu

---------- Instale o Node.js ---------- 
$ sudo apt-get install -y nodejs
$ sudo apt-get install -y npm

#Criar um aplicativo Nodejs

2. Agora, vamos criar um aplicativo de teste.

$ sudo mkdir -p /var/www/html/app
$ sudo vim /var/www/html/app/server.js

Em seguida, copie e cole os seguintes trechos de código nos arquivos server.js

const http = require("http");

const server = http.createServer((req, res) => {
  const urlPath = req.url;
  if (urlPath === "/overview") {
    res.end('Welcome to the "overview page" of the nginX project');
  } else if (urlPath === "/api") {
    res.writeHead(200, { "Content-Type": "application/json" });
    res.end(
      JSON.stringify({
        product_id: "xyz12u3",
        product_name: "NginX injector",
      })
    );
  } else {
    res.end("Successfully started a server");
  }
});

server.listen(3000, "localhost", () => {
  console.log("Listening for request");
});

Salve o arquivo e saia.

#Instalar o PM2 Product Process Manager no Linux

3. A versão estável mais recente do PM2 está disponível para instalação via NPM , conforme mostrado.

$ sudo npm i -g pm2 

4. Uma vez instalado o PM2 , você pode iniciar seus aplicativos de nó usando os seguintes comandos.

$ sudo node /var/www/html/app/server.js

Observe que, em um ambiente de produção, você deve iniciá-los usando PM2 , conforme mostrado (você pode não precisar do comando sudo se seu aplicativo estiver armazenado em um local onde um usuário normal tenha permissões de leitura e gravação).

$ sudo pm2 start /var/www/html/app/server.js

#Como usar e gerenciar o PM2 no Linux

5. Para iniciar um aplicativo no modo cluster usando o -isinalizador para especificar o número de instâncias, por exemplo.

$ sudo pm2 start /var/www/html/app/server.js -i 4
$ sudo pm2 scale 0 8 #escala app de cluster para 8 processos

6. Para listar todos os seus aplicativos de nó (processos/microsserviços), execute o seguinte comando.

$ sudo pm2 list

Listar todos os aplicativos de nó gerenciado PM2

7. Para monitorar logs, métricas customizadas, processar informações de todos os processos executando o seguinte comando.

$ sudo pm2 monit

Monitore todos os processos do nó

8. Para visualizar os detalhes de um único processo do Node, conforme mostrado, usando o ID ou nome do processo.

$ sudo pm2 show 0

#Como gerenciar aplicativos de nó usando PM2 no Linux

9. A seguir está uma lista de alguns comandos de gerenciamento de processos comuns (um ou todos) que você deve observar.

$ sudo pm2 stop all #parar todos os aplicativos
$ sudo pm2 stop 0 #parar processo com ID 0
$ sudo pm2 restart all #reiniciar todos os aplicativos
$ sudo pm2 reset 0 #redefinir todos os contadores
$ sudo pm2 delete all #kill e remova todos os aplicativos
$ sudo pm2 delete 1 #matar e deletar app com ID 1

10. Para gerenciar logs de aplicativos, use os seguintes comandos.

$ sudo pm2 logs #ver logs de todos os processos
$ sudo pm2 logs 1 #view logs for app 1
$ sudo pm2 logs --json #view logs para todos os processos no formato JSON
$ sudo pm2 flush #flush todos os logs

11. Para gerenciar o processo PM2, use os seguintes comandos.

$ sudo pm2 startup #enable PM2 to start at system boot
$ sudo pm2 startup systemd #ou especifique explicitamente systemd como sistema de inicialização
$ sudo pm2 save #save a lista de processos atual na reinicialização
$ sudo pm2 unstartup #desativar a inicialização do PM2 na inicialização do sistema
$ sudo pm2 update #atualizar pacote PM2

12. Em seguida, acesse seus aplicativos em um navegador da Web com estes URLs:

http://198.168.43.31

image.png
Acessar aplicativos de nó a partir do navegador

Por último, mas não menos importante, o PM2 é um sistema de módulo simples e embutido para estender seus recursos principais, alguns dos módulos incluem pm2-logrotate, pm2-webshell, pm2-server-monit e muito mais – você também pode criar e usar seu módulos próprios. Para obter mais informações, acesse o repositório PM2 GitHub: https://github.com/Unitech/PM2/ .

Isso é tudo! O PM2 é um gerenciador de processos de nível de produção avançado e eficiente para Node.js com um balanceador de carga integrado. Neste artigo, mostramos como instalar e usar o PM2 para gerenciar aplicativos Nodejs no Linux.

Share: