Ich benutze das npm-Paket Express Version 2.5.2 mit der Knotenversion .0.6.5. Ich habe anscheinend die Bash Version 4.1.5 unter Debian 4.4.5 gestartet.
Ich versuche, meinen Server im Produktionsmodus auszuführen, aber er läuft immer noch im Entwicklungsmodus.
Ich führe diese Befehle in meiner Bash-Shell aus:
%Vor%Ich habe diesen Code in bootstrap.js:
%Vor%und hier ist, was ich sehe, nach Standard ausgedruckt:
%Vor%Ist das ein Problem mit meiner Verwendung oder meinem System?
BEARBEITEN: Danke an ThiefMaster, dass er erkannt hat, dass dieses Problem von meinem laufenden Knoten als root stammt. ThiefMaster hat vorgeschlagen, iptables für die Weiterleitung von Port 80 an einen nicht privilegierten Port zu verwenden, aber mein System gibt mir einen Fehler. Verschieben Sie diese Diskussion auf superuser.com oder serverfault.com (Link folgt)
Die meisten Umgebungsvariablen sind bei der Verwendung von sudo aus Sicherheitsgründen nicht aktiviert. Daher können Sie diese Umgebungsvariable nicht an Knoten übergeben, ohne Ihre sudoers-Datei zu ändern, damit diese Variable übergeben werden kann.
Sie sollten Knoten jedoch nicht als root ausführen. Also hier ist ein guter Workaround:
Wenn Sie es nur für Port 80 benötigen, führen Sie den Knoten an einem nicht privilegierten Port aus und richten Sie eine iptables-Weiterleitung ein, um Port 80 diesem Port zuzuordnen:
Ersetzen Sie 1.2.3.4 mit Ihrer öffentlichen IP, 2.3.4.5 mit dem IP-Knoten läuft auf (könnte der öffentliche sein oder 127.0.0.1) und 1234 mit dem Port-Knoten läuft auf.
Mit einem ausreichend neuen Kernel, der Fähigkeitsunterstützung bietet, können Sie der ausführbaren Datei node
auch die Berechtigung CAP_NET_BIND_SERVICE
erteilen, indem Sie den folgenden Befehl als root verwenden:
Beachten Sie, dass dies jedem Benutzer auf Ihrem System erlaubt, privilegierte Ports mit Knoten zu öffnen!