pm2 je správce procesů pro aplikace Node.js, umožňuje vám udržovat vaše aplikace při životě a má vestavěný nástroj pro vyrovnávání zatížení. Je to jednoduché a výkonné, vždy můžete restartovat nebo znovu načíst aplikaci uzlu s nulovými prostoji a umožňuje vám to vytvořit cluster vaší aplikace uzlu.
V tomto tutoriálu vám ukážu, jak nainstalovat a nakonfigurovat pm2 pro jednoduchou aplikaci 'Express' a poté nakonfigurovat Nginx jako reverzní proxy pro aplikaci uzlu, která běží pod pm2.
Předpoklady
- Ubuntu 16.04 – 64bit
- Kořenová oprávnění
Krok 1 – Instalace Node.js LTS
V tomto tutoriálu začneme náš projekt od nuly. Nejprve potřebujeme Nodejs nainstalovaný na serveru. Budu používat Nodejs LTS verze 6.x, kterou lze nainstalovat z repozitáře nodesource.
Nainstalujte balíček 'python-software-properties ' z úložiště Ubuntu a poté přidejte úložiště 'nodesource' Nodejs.
sudo apt-get install -y python-software-properties
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
Nainstalujte nejnovější verzi Nodejs LTS.
sudo apt-get install -y nodejs
Když instalace proběhla úspěšně, zkontrolujte verzi uzlu a npm.
node -v
npm -v
Krok 2 – Vygenerování expresní ukázkové aplikace
Použiji jednoduchý skelet webové aplikace vygenerovaný pomocí balíčku s názvem 'express-generator “ pro tento příklad instalace. Express-generator lze nainstalovat pomocí příkazu npm.
Nainstalujte 'express-generator ' s npm:
npm install express-generator -g
-g: nainstalovat balíček uvnitř systému
Aplikaci spustíme jako normální uživatel, nikoli jako root nebo super uživatel. Nejprve tedy musíme vytvořit nového uživatele.
Vytvořit nového uživatele, já pojmenuji svého „yume ':
useradd -m -s /bin/bash yume
passwd yume
Přihlaste se k novému uživateli pomocí su:
su - yume
Dále vygenerujte novou jednoduchou webovou aplikaci pomocí expresního příkazu:
express hakase-app
Příkaz vytvoří nový adresář projektu 'hakase-app '.
Přejděte do adresáře projektu a nainstalujte všechny závislosti, které aplikace potřebuje.
cd hakase-app
npm install
Poté otestujte a spusťte novou jednoduchou aplikaci pomocí příkazu níže:
DEBUG=myapp:* npm start
Ve výchozím nastavení poběží naše expresní aplikace na portu 3000 . Nyní navštivte IP adresu serveru:192.168.33.10:3000
Jednoduchá kostra webové aplikace běží na portu 3000 pod uživatelským 'yume'.
Krok 3 – Instalace pm2
pm2 je balíček uzlů a lze jej nainstalovat pomocí příkazu npm. Nainstalujme jej tedy pomocí npm (s oprávněními root, když jste stále přihlášeni jako uživatel hakase, poté spusťte příkaz „exit“ ro se stal root znovu):
npm install pm2 -g
Nyní můžeme použít pm2 pro naši webovou aplikaci.
Přejděte do adresáře aplikace 'hakase-app ':
su - hakase
cd ~/hakase-app/
Zde najdete soubor s názvem 'package.json ', zobrazte jeho obsah pomocí příkazu cat.
cat package.json
Můžete vidět 'start ' řádek obsahuje příkaz, který používá Nodejs ke spuštění expresní aplikace. Tento příkaz použijeme se správcem procesů pm2.
Spusťte expresní aplikaci pomocí příkazu pm2 níže:
pm2 start ./bin/www
Nyní můžete vidět výsledky níže:
Naše expresní aplikace běží pod pm2 s názvem 'www ', id '0 '. Další podrobnosti o aplikaci běžící pod pm2 můžete získat pomocí možnosti zobrazit 'show nodeid|name '.
pm2 show www
Pokud chcete vidět protokol naší aplikace, můžete použít možnost protokoly. Je to pouze protokol přístupu a chyb a můžete vidět stav HTTP aplikace.
pm2 logs www
Můžete vidět, že náš proces běží. Nyní povolme spuštění při bootování.
pm2 startup systemd
systemd :Ubuntu 16 používá systemd.
Zobrazí se zpráva pro spuštění příkazu jako root. Pomocí „exit“ se vraťte do kořenových práv a poté spusťte tento příkaz.
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u yume --hp /home/yume
Vygeneruje konfigurační soubor systemd pro spuštění aplikace. Když restartujete server, aplikace se automaticky spustí při spuštění.
Krok 4 – Instalace a konfigurace Nginx jako reverzního proxy
V tomto tutoriálu použijeme Nginx jako reverzní proxy pro aplikaci uzlu. Nginx je k dispozici v úložišti Ubuntu, nainstalujte jej pomocí příkazu apt:
sudo apt-get install -y nginx
Dále přejděte na 'stránky-dostupné ' a vytvořte nový konfigurační soubor virtuálního hostitele.
cd /etc/nginx/sites-available/
vim hakase-app
Vložte konfiguraci níže:
upstream hakase-app {
# Nodejs app upstream
server 127.0.0.1:3000;
keepalive 64;
}
# Server on port 80
server {
listen 80;
server_name hakase-node.co;
root /home/yume/hakase-app;
location / {
# Proxy_pass configuration
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_max_temp_file_size 0;
proxy_pass http://hakase-app/;
proxy_redirect off;
proxy_read_timeout 240s;
}
}
Uložte soubor a ukončete vim.
V konfiguraci:
- Aplikace uzlu je spuštěna s názvem domény 'hakase-node.co '.
- Veškerý provoz z nginx bude přesměrován do aplikace uzlu, která běží na portu 3000 .
Aktivujte konfiguraci vytvořením symbolického odkazu v adresáři sites-enabled.
ln -s /etc/nginx/sites-available/hakase-app /etc/nginx/sites-enabled/
Otestujte konfiguraci Nginx a ujistěte se, že nedochází k chybě.
nginx -t
Spusťte Nginx a povolte jeho spuštění při spouštění:
systemctl start nginx
systemctl enable nginx
Krok 5 – Testování
Otevřete webový prohlížeč a navštivte název domény (moje je):
http://hakase-app.co
Uvidíte, že expresní aplikace běží pod webovým serverem nginx.
Dále restartujte server a ujistěte se, že aplikace uzlu běží v době spouštění:
pm2 save
sudo reboot
Pokud jste se znovu přihlásili ke svému serveru, zkontrolujte proces aplikace uzlu. Spusťte níže uvedený příkaz jako 'yume ' uživatel.
su - yume
pm2 status www
Aplikace Node běží pod pm2 a Nginx jako reverzní proxy.
Odkazy
- Ubuntu
- Node.js
- Nginx