GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nasadit aplikace Node.js s pm2 a Nginx na Ubuntu

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.

  • Ubuntu
  • Node.js
  • Nginx

Ubuntu
  1. Jak nainstalovat Nginx s PHP5 a MySQL na Ubuntu 11.10

  2. Jak nasadit aplikaci Flask s Nginx a Gunicorn na Ubuntu 20.04

  3. Jak nainstalovat Node.js s NVM a Nginx na Ubuntu 22.04

  1. Jak nainstalovat Node.js &NPM na Ubuntu 18.04 a 20.04

  2. Jak nainstalovat Node.js a npm na Ubuntu 18.04

  3. Jak nasadit Modsecurity s Nginx na Ubuntu 20.04 LTS

  1. Jak nainstalovat Node.js a npm na Ubuntu 20.04

  2. Jak nainstalovat Node.js a NPM na Ubuntu 18.04

  3. Jak nainstalovat Mattermost s PostgreSQL a Nginx na Ubuntu 16.04