繁体   English   中英

在Production中以最小权限运行sails.js.

[英]Run sails.js with least privileges in Production

我在Ubuntu Trusty上的节点0.10.33上使用Sails.js 0.10.5。 我想以非root用户身份执行节点进程,在生产环境中具有尽可能少的权限。 我很满意绑定到1024以下端口的各种选项,但我更关心目录权限。

理想情况下,我更喜欢节点进程只对其日志文件具有写访问权,而不是其他任何内容。 它应该只对包含app.js及以下的目录具有读访问权限。

目前,由于在启动时运行的grunt任务,我需要授予./.tmp目录以及./views目录的写访问权限。 我宁愿在部署时以不同的用户而不是在运行时执行grunt任务。 sails www命令似乎很有希望,但我无法获得理想的结果。

有人可以指出我正确的方向运行Sails.js,对其资产,视图等没有写入权限吗?

使用sails www构建静态资产

chmod -R 440所有文件和目录,以便您的用户和Web服务器(组)可以访问这些文件。

使用nginx / apache在端口80/443上托管Web服务器并代理对sails的请求(在自己的端口或unix套接字上运行)。

使用PM2运行sails以使其保持运行并让它管理/收集日志。

Sails会解除,但是无法写入.tmp目录,这甚至不需要,因为所有静态文件都将通过nginx / apache路由到www目录。

对我来说最简单的解决方案似乎是将需要提升权限的grunt任务分离到一个单独的文件中,您可以在部署时与其他用户一起调用。 然后帆不需要运行任何东西,只能读取。

编辑:我使用PM2和apache作为代理(使用mod WS)。

您可以使用一个代理(如apache)从端口80路由到基于主机的其他内部服务器端口。

通过这种方式,您可以在同一台服务器上运行多个应用

它有很多有用的功能,比如查看日志如何在终端中使用varius应用程序,重启和登录崩溃的应用程序,以用户身份运行应用程序,应用程序状态等等。

Pm2链接: https//github.com/Unitech/pm2

PM2配置: https//github.com/Unitech/PM2/blob/development/ADVANCED_README.md#options

暂无
暂无

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

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