作为引用,假设开发人员使用 ngnix 服务器构建了一个普通的 php web 应用程序。将 Web 文件托管在 VPS 上的/srv/www 目录中是有意义的。/srv/www 的所有者和组是 nginx。
使用 NodeJS 运行所述 Web 应用程序时,托管 Web 应用程序的正确目录是什么?该目录的正确文件夹权限是什么?当然,请记住安全非常重要。操作系统,在本例中是 Centos 6.5。
最佳答案
权限
一般来说,对于权限,我设置如下:
- 大多数文件 440 归
myapp
所有,组设置为admin
- 如果应用需要写入它们,文件可以是 640
- 如果管理员通常想要写入它们,文件可以是 460
- 大多数目录的 550 归
myapp
和admin
组所有- 如果应用程序需要写入它们,目录可以是 750
- 如果管理员通常想给他们写信,他们可以是 570 然而,随着时代的进步和 PaaS 变得更加占主导地位,这种风格变得不再那么重要,并且由于虚拟化及其多种形式,在同一主机操作系统和同一文件系统上运行的多个应用程序之间的协作也越来越不重要。
- 根据具体情况偏离这些基线,以便您的应用正确运行并保持安全。
文件系统布局
这里有一些约定。最正式的是linux Filesystem Hierarchy Standard它具有长期运行且或多或少达成一致的约定。
FHS 样式
- 应用代码位于
/opt/myapp
- 数据和运行时状态位于
/var/opt/myapp
- 日志数据位于
/var/opt/log/myapp
- 配置位于
/etc/opt/myapp
- 您的应用可以作为名为
myapp
的用户帐户运行,并具有适当的 FS 读/写权限
PaaS 风格
- 大多数情况下,这是一个没有实际意义的问题,因为您的 PaaS 供应商(heroku、nodejitsu、modulus 等)会为您规定这一点
- 您只需将应用程序放入 npm 模块即可完成
Docker 风格
对于 docker 世界来说,它与 PaaS 类似,没有那么重要,但是,例如对于 phusion 的 baseimage-docker如果您将代码安装到容器内的 /home/app
中,事情就会“正常工作”。
关于linux - 在服务器上提供 Node.js Web 应用程序的正确文件夹是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25456295/