Das Problem mit „node app.js"
Startest du eine Node-App direkt mit node app.js, stoppt sie, sobald du die SSH-Sitzung schließt — und nach einem Absturz bleibt sie tot. PM2 ist ein Prozess-Manager, der deine App im Hintergrund hält, bei Abstürzen neu startet und nach einem Reboot automatisch wieder hochfährt.
PM2 installieren
Voraussetzung ist eine installierte Node.js-Umgebung. PM2 kommt per npm:
sudo npm install -g pm2
App starten
pm2 start app.js --name meine-app
Die App läuft jetzt im Hintergrund. Mit pm2 list siehst du alle laufenden Prozesse, mit pm2 restart meine-app startest du sie neu.
Autostart nach Reboot
Damit die App einen Server-Neustart übersteht:
pm2 startup pm2 save
Der erste Befehl richtet den systemd-Dienst ein (ggf. die ausgegebene Zeile mit sudo ausführen), der zweite speichert die aktuelle Prozessliste. Nach einem Reboot fährt PM2 deine Apps automatisch wieder hoch.
Logs und Monitoring
pm2 logs meine-app pm2 monit
pm2 logs zeigt die Ausgabe deiner App, pm2 monit eine Live-Ansicht von CPU und Speicher. So erkennst du Probleme früh.
Davor: der Reverse Proxy
Üblicherweise lauscht die Node-App nur lokal und ein Nginx-Reverse-Proxy stellt sie nach außen mit HTTPS bereit. Startet die App nicht durch, siehe 502 Bad Gateway beheben. Den passenden vServer dafür gibt es bei Nytrix.