The first line of the first article you mentioned mentions the reason.
Standard practices say no non-root process gets to talk to the Internet on a port less than 1024.
For node, to bind to port 80 or 443 you need to run it as root, which is not very good.
The method used to redirect traffic to higher ports is up to you. iptables is the least resource-intensive and simplest. Another method would be to use NginX / Apache for a proxy before Node. I would say that the main advantage of this method is that you can also use things like static files and should not serve them through Node.
Apache and NginX are both explicitly designed to serve static files, so they are very good at it, while node is a whole JS environment with all the overhead. node does a great job with many concurrent connections and, of course, can serve files perfectly for normal loads, but it will use more resources for this than NginX.
Using a proxy server that supports HTTP, such as Apache / NginX, also means that you can easily configure multiple node instances to run different subdomains or even different paths in the same domain.
loganfsmyth
source share