繁体   English   中英

我应该在node.js上监听哪些端口? 怎么样和为什么?

[英]What ports should I node.js listen on? How and why?

我的node.js应用程序我在端口80上监听http,443监听https,我认为这是相当标准的做法。

然而,我最近阅读的一些示例使用其他端口(例如8080和8081)来监听http / https,然后使用其他方式(如iptablesufw规则)通过将数据包重新路由到其他端口来为端口ufw提供服务。

在此处此处查看两个示例。

所以我的问题是为什么我不想直接听端口80和443?

手头有安全问题吗? 这仅仅是这些作者没有权限侦听低于1024的端口的情况(我发现这令人惊讶吗?)? 大多数人沿着侧节点运行Apache吗? (我不)。

假设有一个很好的理由为什么我不想直接听80和/或443, 我应该使用哪种方法将流量从80/433中继到我选择的备用端口?

我之前提到iptables和ufw,其中一个比其他更好,还是我应该使用其他方法? 答案取决于我是否在进程之间平衡负载?

提前致谢。

您链接的第一篇文章的第一行提到了原因。

Standard practices say no non-root process gets to talk to
the Internet on a port less than 1024.

要将节点绑定到端口80443 ,您需要以root身份运行它,这不是一个好主意。

用于将流量重新路由到更高端口的方法取决于您。 iptables是资源最少且最简单的。 另一种方法是使用NginX / Apache代理Node。 我想说这种方法的主要好处是你可以从那里提供静态文件之类的东西,而不必通过Node提供它们。

Apache和NginX都明确地设计为非常擅长提供静态文件,因此它们非常擅长,而Node是一个完整的JS环境,涉及所有开销。 Node非常适合处理大量的并发连接,它可以很好地为正常负载提供文件,但是它将使用比NginX更多的资源来完成它。

使用像Apache / NginX这样的HTTP感知代理也意味着您可以非常轻松地设置多个Node实例来运行不同的子域,甚至可以在同一个域上运行不同的路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM