2017-10-24 1 views
0

Ich habe eine App Port abzuhören gesetzt 66.App nicht mit PM2 beginnend nach der Ausführung stoppen

Zuerst habe ich versucht, es mit sudo Knoten myapp.js zu laufen. Ich konnte auf die richtige URL zugreifen (IP: 66). Dann stoppte ich die App (Strg + c) und startete sie mit pm2, sudo pm2 start app.js. Der Status lautet online. Diese URL ist jedoch jetzt nicht mehr verfügbar.

Ausführen von sudo PM2-Logs, während die App mit PM2 gestartet wird, gibt mir den Fehler EACCESS für Port 66. Niemand sonst läuft die App, und ich bin sicher, dass ich nur eine Konsole benutze und den Node-Dienst vor dem Starten mit pm2.

Pm2 wurde weltweit installiert. Server ist Debian-Stretch. Nodejs Version ist 8.x

Ich logge als normaler Benutzer und mit Sudo, um die App zu starten.

Antwort

1

auf Linux-Systemen sind normale Benutzer nicht berechtigt, Ports unter 1024 zu hören. Dafür gibt es mehrere Möglichkeiten.

Sie können diese Regel ändern, damit Nicht-Root-Benutzer solche Ports öffnen können. Aber das ist ein Sicherheitsrisiko und wird nicht empfohlen. Also werde ich keinen Link zu dieser Lösung hinzufügen.

Sie können auch einen Port abhören, der größer als 1024 ist, und dann eine Forward-Regel in Ihrer Firewall verwenden, um Port 66 an den von Ihnen geöffneten Port zu leiten. https://www.systutorials.com/816/port-forwarding-using-iptables/

meine (und PM2 ist) bevorzugte Lösung ist auf einen Port größer als 1024 und verwenden Sie einen Reverse-Proxy wie nginx zu routen Anwendungen auf dem Server laufen zu hören. http://pm2.keymetrics.io/docs/tutorials/pm2-nginx-production-setup

+0

Danke, das war eine gute Antwort. Es stellte sich heraus, dass ich nicht der Einzige war, der diese Frage stellte (ich habe einfach nicht richtig gegoogelt und konnte keine Antwort finden). Wie auch immer, deine Tipps sind sehr nützlich. –

Verwandte Themen