Node.js App auf VPS deployen: PM2 + Nginx Reverse Proxy

Node.

Node.js Apps brauchen einen Process Manager (PM2) und Reverse Proxy (Nginx). Hier ist die komplette Setup-Anleitung.

Node.js installieren (via nvm)

nvm ist der beste Weg, Node.js zu installieren:

# nvm installieren:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

# Terminal neu laden:
source ~/.bashrc

# Node.js LTS installieren:
nvm install --lts

# Version checken:
node --version
npm --version

PM2 installieren

PM2 ist ein Production Process Manager für Node.js:

npm install -g pm2

# App starten:
pm2 start app.js --name myapp

# Status checken:
pm2 status

# Logs anzeigen:
pm2 logs myapp

# Auto-Start nach Reboot:
pm2 startup
pm2 save

Nginx als Reverse Proxy

Nginx leitet Port 80/443 zu deiner Node-App (z.B. Port 3000):

sudo nano /etc/nginx/sites-available/myapp

# Config:
server {
  listen 80;
  server_name example.com;

  location / {
    proxy_pass http://localhost:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }
}

# Aktivieren:
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

SSL mit Let's Encrypt

sudo certbot --nginx -d example.com

# Certbot konfiguriert automatisch HTTPS in Nginx

Environment Variables

PM2 kann .env-Files laden:

# .env erstellen:
PORT=3000
DB_HOST=localhost
DB_PASS=secret

# PM2 mit env starten:
pm2 start app.js --name myapp --env production

Deployment mit Git

Kombination mit Git-Hooks:

# In post-receive Hook:
#!/bin/bash
cd /var/www/myapp
npm install --production
pm2 restart myapp

Fazit

PM2 + Nginx ist die Standard-Kombo für Node.js auf VPS. Auto-Restart, Logs, Clustering – alles dabei.

Wer noch keinen Server hat: Mit einem Netcup Rabatt bekommst du den ersten Monatsbeitrag geschenkt.

Verwandte Artikel

Diese Guides könnten dich auch interessieren

Development

Nginx vs Apache

Nginx oder Apache? Beide Webserver haben Vor- und Nachteile. Wir vergleichen Performance, Konfiguration und zeigen, welc...

Weiterlesen →
Development

Git auf VPS

Git macht Deployment einfach. Wir zeigen dir, wie du Git auf deinem VPS nutzt und mit git push automatisch deployed.

Weiterlesen →
Administration

Linux-Befehle Cheatsheet

Die wichtigsten Linux-Befehle für VPS-Administration. Von ls bis rsync – alle Commands mit Beispielen.

Weiterlesen →