我知道nodejs可以通过以下方式在端口80上运行:
第一个选项不是最简单的,需要更多的依赖关系。第二个可能正在工作,但在我的OpenVZ VPS上它不会(我无法编译自定义的Linux内核)。
我也需要处理一些子域,在阅读了这个stackoverflow answer之后,我尝试了第三个解决方案。 它完美地工作且非常容易执行。
我想知道在80端口上直接运行nodejs时是否存在一些安全问题?我该如何修理/找到这些?
我想使用pm2来处理这些流程,它可能会运行not as root(Goodbye node-forever hello pm2)。
答案 0 :(得分:2)
第一个选项不是最简单的,需要更多的依赖关系然后我需要
请查看why should one use a http server in front of a framework web server,了解许多有效理由您实际上应该这样做。
使用iptables规则设置端口重定向
这可能比直接让您的节点进程侦听端口80更好,尽管我还没有看到在生产中使用这种类型的配置。
在应用程序内的端口80上进行快速侦听
这在功能上是一个糟糕的选择,因为您没有获得上述链接答案中列出的好处,但是,从严格的安全角度来看,要记住的关键是您不能以root身份运行您的节点进程,这将是一个可怕的安全问题。您必须是root才能绑定到端口80,因为这是unix规则,但您可以而且必须在绑定到该端口后立即更改为权限较低的用户。