Node.js Applikationen betreiben
Dieser Artikel beschreibt, wie Sie eine Node.js-Installation im Userspace betreiben.
Die Installation im Userspace kann aus mehreren Gründen empfehlenswert sein:
- Sie haben die Kontrolle darüber, welche Node.js Version Sie verwenden.
- Sie können verschiedene Versionen für verschiedene Anwendungen verwenden.
- Sie können "globale" npm-Pakete installieren.
Mit dem “Node Version Manager”, nachstehend nvm
genannt, können Sie mehrere Node.js-Versionen installieren und verwalten.
Die aktuelle Version von nvm
finden Sie unter github.com/creationix/nvm.
Installation von nvm
nvm
wird über ein Installations-Script installiert, welches von Github mit curl
abgerufen werden kann:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
Dadurch wird nvm direkt installiert und in Ihrer .bashrc
exportiert.
Um nvm
direkt über die CLI nutzen zu können, muss die .bashrc
neu eingelesen werden:
source .bashrc
Verwendung von NVM
Verfügbare Versionen anzeigen
nvm ls-remote
Installierte Version prüfen
nvm ls
Eine Version installieren
Die neueste LTS Version installieren
nvm install 'lts/*'
Eine bestimmte Version installieren
nvm install 5.0
Eine bestimmte Version verwenden
nvm use 5.0
Führen Sie einen Befehl mit einer bestimmten Version aus:
# nvm exec [<version>] [<command>]
# Run <command> on <version>. Uses .nvmrc if available and version is omitted.
nvm exec 5.0 node --version
Konfigurieren Sie eine Node-js-Version für ein bestimmtes Projekt:
Dies können Sie mit einer .nvmrc Datei tun:
$ cat .nvmrc
lts/*
Applikationen mit dem Prozess-Manager verwalten (pm2)
pm2
ist ein Prozessmanager für Node.js-Anwendungen mit integriertem Load Balancer. Dies ermöglicht Ihnen unter anderem,
Anwendungen dauerhaft zu betrieben, Anwendungen ohne Ausfallzeit neu zu laden und erleichtert gängige Administrationsaufgaben.
Sie können pm2
mit folgendem Befehl installieren:
npm install pm2 -g
Nutzung von pm2
Starten von Applikationen
pm2 start app.js
Mehrere Instanzen der Applikation im Cluster starten
pm2 start app.js -i 4
pm2 Aktualisieren
pm2 update
pm2 Prozesse überwachen
pm2 list # Zeigt alle Prozesse, die mit pm2 starten
pm2 monit # Zeigt Speicher- und CPU-Auslastung jeder aktiven Applikation
pm2 show [app-name] # Zeigt Informationen über die gewählte Applikation
pm2 Prozesse verwalten
pm2 startup # Erkennt das 'init' System, erstellt und konfiguriert pm2 boot beim startup
pm2 save # Speichert die aktuelle Prozessliste
pm2 resurrect # Wiederherstellen der zuvor erstellten Prozesse
pm2 unstartup # Deaktiviert und entfernt das startup System
Applikation nach Systemneustart mittels SystemD starten
Um pm2
bei einem Neustart des Systems als Benutzer-Service zu starten, kann eine Systemd Unit (~/.config/systemd/user/pm2.service
)
verwendet werden:
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
[Service]
Type=forking
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=NODE_ENV=production
Environment=NODE_VERSION=14
Environment=PM2_HOME=%h/.pm2
PIDFile=%h/.pm2/%p.pid
ExecStart=%h/.nvm/nvm-exec pm2 resurrect
ExecReload=%h/.nvm/nvm-exec pm2 reload all
ExecStop=%h/.nvm/nvm-exec pm2 kill
[Install]
WantedBy=default.target
Weitere Informationen zu SystemD finden Sie in folgendem Support-Artikel.