Ich verwende einen node.js-Server, der unter anderem Anforderungen an Port 80 bedient. Dies erfordert natürlich, dass die Anwendung als root läuft (unter Linux).Wie node.js als Nicht-Root-Benutzer ausführen?
Wenn Sie diesen Beitrag (http://syskall.com/dont-run-node-dot-js-as-root) als ein Beispiel betrachten, ist es klar, dass es einfache Möglichkeiten gibt, Knoten als Nicht-root-Benutzer ausgeführt werden, aber ich frage mich, ob jemand Ansichten über die Vorteile/Nachteile der hat verschiedene Methoden vorgeschlagen:
Code verwenden setuid-() von der Wurzel fallen bis auf nicht-privilegierte Benutzer nach der Port 80 überwachen hergestellt wird.
einen Proxy-Server von einer Art verwenden Umleitung von Anforderungen an einen Port> 1024 (und so nicht brauchen Knoten ausgeführt als root)
mit IP-Tabellen auf einen anderen Port (dito Knoten laufen würde nicht weiterleiten als root)
Dank
upvoted. Beachten Sie, dass der oben genannte 'iptables' Befehl zumindest unter Ubuntu nicht dauerhaft ist ... um sicherzustellen, dass die Regel beim nächsten Start beibehalten wird, müssen Sie sicherstellen, dass ein Startskript die' iptables' Regeln mit Hilfe des "iptables-restore" -Befehl, wie hier beschrieben: http://www.rackspace.com/knowledge_center/article/ubuntu-setup –
Ist Option 3 die Art und Weise, wie die meisten NodeJS-Entwickler ihre fertigen Websites bereitstellen? Wenn nicht, wie können Client-Browser normalerweise eine Verbindung zu Port 80 herstellen? – trysis
Hängt von Ihrer Situation ab. Größere Bereitstellungen verwenden einen Front-End-Lastausgleich, der der Option 2 entspricht. Viele Benutzer verwenden Heroku, das einen Front-End-Lastenausgleich verwendet. wieder Option 2. Wenn Sie dies jedoch auf einem Server mit Root-Zugriff bereitstellen, empfehle ich Option 3. Es ist einfach und Sie müssen sich keine Gedanken über die Konfiguration eines Reverse-Proxy machen. Das heißt, schauen Sie sich unbedingt Heroku an, wenn das eine Option für Sie ist. Sie machen es sehr einfach, Bereitstellungen durchzuführen. – Daniel