Jos*_*hua 8 https port http node.js
我的node.js应用程序我在端口80上监听http,443监听https,我认为这是相当标准的做法.
然而,我最近阅读的一些示例使用其他端口(例如8080和8081)来监听http/https,然后使用其他方式(例如iptables或ufw规则)通过将数据包重新路由到其他端口来为端口80/443提供服务.
所以我的问题是为什么我不想直接听端口80和443?
手头有安全问题吗?这仅仅是这些作者没有权限侦听低于1024的端口的情况(我发现这令人惊讶吗?)?大多数人沿着侧节点运行Apache吗?(我不).
假设有一个很好的理由为什么我不想直接听80和/或443,我应该使用哪种方法将流量从80/433中继到我选择的备用端口?
我之前提到iptables和ufw,其中一个比其他更好,还是我应该使用其他方法?答案取决于我是否在进程之间平衡负载?
提前致谢.
log*_*yth 14
您链接的第一篇文章的第一行提到了原因.
Standard practices say no non-root process gets to talk to
the Internet on a port less than 1024.
Run Code Online (Sandbox Code Playgroud)
对于节点绑定端口80或者443,您将需要root权限运行它,这不是一个好主意.
用于将流量重新路由到更高端口的方法取决于您.该iptables是最耗费资源的,最简单的.另一种方法是使用NginX/Apache代理Node.我想说这种方法的主要好处是你可以从那里提供静态文件之类的东西,而不必通过Node提供它们.
Apache和NginX都明确地设计为非常擅长提供静态文件,因此它们非常擅长,而Node是一个完整的JS环境,涉及所有开销.Node非常适合处理大量的并发连接,它可以很好地为正常负载提供文件,但是它将使用比NginX更多的资源来完成它.
使用像Apache/NginX这样的HTTP感知代理也意味着您可以非常轻松地设置多个Node实例来运行不同的子域,甚至可以在同一个域上运行不同的路径.
| 归档时间: |
|
| 查看次数: |
10884 次 |
| 最近记录: |