繁体   English   中英

如何在生产环境中处理NVM?

[英]How deal with NVM in production environments?

我正在使用NVM开发Sails Web应用程序。 我已经通过NVM安装了节点v0.12.7,我使用这个版本来运行网站。

nvm use 0.12.7
sails lift

Sails默认使用端口1337,但对于生产环境,我们将其更改为443.问题是此端口需要root权限,并且仅为一个用户安装NVM。 因此,如果我尝试sudo sails lift,我会收到错误消息,说明没有安装风帆

处理该问题最有效的方法是什么? 如何使用NVM开发项目并进行部署?

我想到了不同的可能解决方案,但我不知道它们是好还是不安全。

  1. 使用iptables转发端口。 问题是socket无法使用代理。
  2. 更改端口的权限。 如果节点存在漏洞,则可能存在安全风险。
  3. 使用root安装NVM。 问题是我使用NVM来避免使用sudo来部署或运行​​应用程序,这将迫使我这样做。

在这种情况下,最佳做法是什么?

提前致谢。

我已经解决了以下问题。

我已经更改了所有者和节点组。

which node # gives a string with the path to node
sudo chown root:root path_to_node
sudo chmod u+s path_to_node

这样,无论用户执行节点将使用所有者权限执行此操作。 在这种情况下,所有者是root用户,其权限足以使用1024以下的端口。

您对此解决方案有何看法?

出于安全原因,不建议让NodeJS以root权限运行。

您可以尝试在没有root权限的其他用户可访问的端口上运行应用程序,然后在443端口上配置反向代理。 这就是我使用nginx作为反向代理所做的事情,它可以轻松配置以执行此任务以及处理SSL流量。

在此链接上,您可以找到有关将nginx配置为反向代理的更多信息,它来自官方文档: https//www.nginx.com/resources/admin-guide/reverse-proxy/

暂无
暂无

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

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