123/A, Miranda City Likaoli
Prikano, Dope
+0989 7876 9865 9
+(090) 8765 86543 85
#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.
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
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.
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
5. Para iniciar um aplicativo no modo cluster usando o -i
sinalizador 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
7. Para monitorar logs, métricas customizadas, processar informações de todos os processos executando o seguinte comando.
$ sudo pm2 monit
8. Para visualizar os detalhes de um único processo do Node, conforme mostrado, usando o ID ou nome do processo.
$ sudo pm2 show 0
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
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.