Ich habe eine ausdrückliche, dass ich auf Port 80 ausgeführt werden soll ->app.listen(80);
Lauf Knoten App über PM2 auf Port 80
Ich verwende PM2
die App zu verwalten (Neustarten, Stoppen, Überwachung, usw.). Ich habe ein Deployment-Shell-Skript, dessen letzter Befehl PM2 restart index
ist. Von der Konsolenausgabe sehe ich keine Fehler und PM2
meldet, dass es den Befehl erfolgreich abgeschlossen hat. Aber als ich zu my.ec2.ip.address:80
kam, ist die Seite nicht verfügbar. Außerdem, wenn ich node index.js
in meinem Server-Projektverzeichnis ausführen, erhalte ich eine Error: listen EACCES 0.0.0.0:80
. Dies ist für mich sinnvoll, da Port 80 unter 1024 liegt und daher ein privilegierter Port ist. sudo node index.js
ermöglicht den Start zu arbeiten.
Ich bin ein Neuling, Unix, Server, Berechtigungen und Bereitstellung, so dass zusätzlich zu der Lösung eine Erklärung der grundlegenden Konzepte zu meinem Problem sehr geschätzt werden würde. Zum Beispiel ... ist es schlecht, meine Knoten-App einfach als Super-User zu betreiben? Ist es eine gute Übung, PM2
(also möglicherweise laufenden Knoten als ..?) Root/super-user? Der Befehl sudo PM2 restart index
führt zu sudo: pm2: command not found
. Warum wird PM2
nicht gefunden, wenn sudo PM2
ausgeführt wird. Wenn PM2
in meinem Pfad ist?
Schließlich, wenn ich PM2
verwende, wie kann ich sicherstellen, dass mein Server auf Port 80 läuft? nicht gefunden.
Nach dem Ausführen dieser konnte ich auf http://example.org:80, aber http://example.org nicht zugreifen. Um diesen Befehl rückgängig zu machen: http://lubos.rendek.org/remove-all-iptables-prerouting-nat-rules/ –