如何在生产环境中处理 NVM?
How deal with NVM in production environments?
我正在使用 NVM 开发 Sails Web 应用程序。我已经通过 NVM 安装了 node v0.12.7,我将这个版本用于 运行 网站。
nvm use 0.12.7
sails lift
Sails默认使用1337端口,生产环境我们改成443端口。问题是这个端口需要root权限,而且NVM只为一个用户安装。因此,如果我尝试使用 sudo sails lift,我会收到一条错误消息,提示未安装 sails。
处理该问题最有效的方法是什么?如何使用 NVM 开发和部署我的项目?
我想过不同的可能解决方案,但我不知道它们是好的还是不安全的。
- 使用
iptables
转发端口。问题是套接字无法工作,因为代理。
- 更改端口权限。如果节点存在漏洞,可能存在安全风险。
- 使用 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 流量。
在这个link你可以找到更多关于配置nginx作为反向代理的信息,它来自官方文档:
https://www.nginx.com/resources/admin-guide/reverse-proxy/
我正在使用 NVM 开发 Sails Web 应用程序。我已经通过 NVM 安装了 node v0.12.7,我将这个版本用于 运行 网站。
nvm use 0.12.7
sails lift
Sails默认使用1337端口,生产环境我们改成443端口。问题是这个端口需要root权限,而且NVM只为一个用户安装。因此,如果我尝试使用 sudo sails lift,我会收到一条错误消息,提示未安装 sails。
处理该问题最有效的方法是什么?如何使用 NVM 开发和部署我的项目?
我想过不同的可能解决方案,但我不知道它们是好的还是不安全的。
- 使用
iptables
转发端口。问题是套接字无法工作,因为代理。 - 更改端口权限。如果节点存在漏洞,可能存在安全风险。
- 使用 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 流量。
在这个link你可以找到更多关于配置nginx作为反向代理的信息,它来自官方文档: https://www.nginx.com/resources/admin-guide/reverse-proxy/