Node.js als Dauerdienst

Skip to main content
Du bist hier:
Drucken

Node.js als Dauerdienst

Betreibst du in Plesk eine Node.js-Anwendung, die dauerhaft laufen soll, zum Beispiel einen eigenen Server, einen Bot oder ein Monitoring-Tool? Dann gibt es drei typische Stolpersteine.

1. Startdatei statt «Skript ausführen»

Startest du eine Dauer-Anwendung über «Skript ausführen» (zum Beispiel npm run start), läuft dieser Prozess mit der Node.js-Version weiter, die beim Klick eingestellt war. Wechselst du später die Version, übernimmt der laufende Prozess sie nicht.

  • Trage bei deiner Node.js-Anwendung in Plesk stattdessen die Startdatei (Application Startup File) ein, zum Beispiel server/server.js.
  • Wähle die gewünschte Node.js-Version und klicke auf «App neu starten».
  • So verwaltet Plesk den Prozess selbst und startet ihn immer mit der gewählten Version.

Läuft noch ein alter, über «Skript ausführen» gestarteter Prozess, muss er einmalig beendet werden. Eröffne dafür ein Ticket, falls du ihn nicht selbst beenden kannst.

2. WebSockets funktionieren nicht

Standardmässig läuft deine Anwendung hinter einem Proxy, der keine WebSocket-Verbindungen weiterreicht. Viele Anwendungen weichen dann automatisch auf eine andere Verbindungsart aus und funktionieren trotzdem. Braucht deine Anwendung WebSockets zwingend (zum Beispiel der Editor von Node-RED), gehst du so vor:

  • Öffne bei der betroffenen Domain oder Subdomain die «Apache- und nginx-Einstellungen».
  • Entferne im Abschnitt nginx-Einstellungen den Haken bei «Proxy-Modus» und speichere.

Funktioniert deine Anwendung auch ohne WebSockets, lass den Proxy-Modus eingeschaltet. Teste WebSockets immer direkt in der Anwendung, ein einfacher Test mit curl zeigt das Problem nicht zuverlässig.

Jede Änderung an diesen Einstellungen startet die Anwendung neu. Je nach Anwendung ist sie danach kurz nicht erreichbar.

3. Anwendung startet nach einem Neustart nicht von selbst

Plesk startet eine Node.js-Anwendung erst beim ersten Aufruf der Webseite, nicht automatisch nach einem Neustart des Webservers. Für einen Dienst, der immer laufen soll, richtest du in Plesk unter «Geplante Aufgaben» eine Aufgabe vom Typ «URL abrufen» ein, die die Adresse deiner Anwendung jede Minute aufruft. So läuft der Dienst nach jedem Neustart automatisch wieder an.

Related Post