Welche ports sollte ich node.js hören Sie auf? Wie und warum?
Meine node.js Anwendungen habe ich port 80 für http und 443 für https, das ich glaubte, war ziemlich standard in der Praxis.
Jedoch eine Reihe von Beispielen, die ich gelesen habe, kürzlich andere ports (z.B. 8080 und 8081) für das hören von http/https, und dann mit anderen Mitteln wie iptables
oder ufw
Regeln dienen die ports 80 /443 über die Umleitung der Pakete zu/von den anderen.
Finden Sie zwei Beispiele hier und hier.
Also meine Frage ist warum würde ich nicht wollen, hören Sie direkt auf die ports 80 und 443?
Gibt es Sicherheitsprobleme bei der hand? Ist es einfach ein Fall von diesen Autoren nicht mit Berechtigungen zum Abhören von ports kleiner als 1024 (ich fände das verwunderlich?)? Die meisten Menschen laufen Apache an der Seite Knoten? (Ich nicht).
Vorausgesetzt, es gibt einen guten Grund, warum ich will nicht zu hören Sie direkt auf 80 und/oder 443, welche Methode sollte ich verwenden, um die relay-Verkehr von 80 /433 auf meine alternative ports der Wahl?
Habe ich erwähnt, iptables und ufw oben, ist einer dieser besser als die anderen, oder gibt es eine andere Methode, die ich verwenden soll? Hat die Antwort hängt davon ab, ob ich bin balancing meine Last zwischen Prozessen?
Vielen Dank im Voraus.
- ich glaube Ihr, denn Sie benötigen root-Rechte zum ausführen auf ports unter 1024, und Sie nicht möchten, dass Sie die app für root, es gibt jedoch Möglichkeiten, es zu binden stil. ich persönlich benutze die AuthBind
- Wenn ich mich nicht Irre, port 1337 ist zu einem standard zu führen nodejs auf. Zum ausführen von Anwendungen, die Sie verwenden können, NGINX als reverse-proxy-server.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der ersten Zeile des ersten Artikels, den Sie verlinkt nennt den Grund.
Für Knoten zum binden an Anschluss
80
oder443
wäre, müssten Sie es als root ausführen, das ist keine gute Idee.Die Methode, die Sie verwenden, um die Umleitung von traffic auf die höheren ports ist bis zu Ihnen. Die
iptables
ist der am wenigsten ressourcenintensiven und einfachste. Eine andere Methode wäre die Verwendung von NginX/Apache-proxy-Knoten. Ich würde sagen, der größte Vorteil dieser Methode ist, dass man dann auch dazu dienen, Dinge wie die statischen Dateien von dort, und nicht zu dienen, Sie durch Knoten.Apache und NginX sind sowohl explizit darauf ausgerichtet werden, die sehr gut bei statischen Dateien, so dass Sie extrem gut sind, in der Erwägung, dass Knoten ist eine ganze JS-Umgebung, mit all dem Aufwand, beteiligt. Knoten ist groß, bei der übergabe, viele gleichzeitige verbindungen und kann es sicherlich dienen-Dateien auch perfekt für normale Lasten, aber es wird mehr Ressourcen als NginX, es zu tun.
Mithilfe einer HTTP-fähigen proxy wie Apache/NginX bedeutet auch, dass können Sie sehr leicht mehrere Instanzen von Knoten verschiedene subdomains, oder sogar verschiedene Pfade auf der gleichen domain.