我正在使用NVM开发Sails Web应用程序。我已经通过NVM安装了节点v0.12.7,我使用这个版本来运行网站。
nvm use 0.12.7
sails lift
Sails默认使用端口1337,但对于生产环境,我们将其更改为443.问题是此端口需要root权限,并且只为一个用户安装NVM。因此,如果我尝试sudo sails lift,我会收到一条错误消息,指出 sails未安装。
处理该问题最有效的方法是什么?如何使用NVM开发项目并进行部署?
我想过不同的可能解决方案,但我不知道它们是好还是不安全。
iptables
转发端口。问题是socket无法使用代理。sudo
来部署或运行应用程序,这将迫使我这样做。在这种情况下,最佳做法是什么?
提前致谢。
答案 0 :(得分:0)
我已解决了以下问题。
我已更改所有者和节点组。
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以下的端口。
您对此解决方案有何看法?
答案 1 :(得分:0)
出于安全考虑,建议不要让NodeJS以root权限运行。
您可以尝试在没有root权限的其他用户可访问的端口上运行您的应用程序,然后在443端口上配置反向代理。这就是我使用nginx作为反向代理所做的事情,它可以轻松配置以执行此任务以及处理SSL流量。
在此链接上,您可以找到有关将nginx配置为反向代理的更多信息,它来自官方文档: https://www.nginx.com/resources/admin-guide/reverse-proxy/