从服务器上提供node.js webapps的正确文件夹是什么?

作为一个参考,比方说一个开发人员用ngnix服务器build立一个vanilla php webapp。 将Web文件托pipe在VPS的/ srv / www目录中是有意义的。 这个/ srv / www的所有者和组是nginx。

当用nodejs运行这个webapp时,什么是正确的目录来托pipewebapp? 所述目录的正确文件夹权限是什么? 当然,请记住安全性非常重要。 在这种情况下,操作系统是Centos 6.5。

权限

一般来说,我的权限设置如下:

  • 大部分文件都是由myapp拥有的,并设置为admin
    • 如果应用程序需要写入他们,文件可以是640
    • 如果pipe理员通常要写信给他们,文件可以是460
  • 大多数目录由myapp拥有550组admin
    • 如果应用程序需要写入,目录可以是750
    • 如果pipe理员通常要写信给他们,他们可以是570.但是,随着时间的推移和PaaS变得更加主导,这种风格变得不那么重要,在同一个文件系统上运行在同一主机操作系统上的多个应用程序之间的合作越来越不重要由于虚拟化和所有的forms。
  • 根据需要,根据需要偏离这些基准,以便您的应用程序正确运行并保持安全。

文件系统布局

这里有几个约定。 最为正式的是linux 文件系统层次结构标准 ,这个标准已经有很长的一段时间,并且已经或多或less地受到约定的约定。

FHS风格

  • 应用程序代码位于/opt/myapp
  • 数据和运行时状态进入/var/opt/myapp
  • 日志数据进入/var/opt/log/myapp
  • configuration进入/etc/opt/myapp
  • 您的应用程序可以作为名为myapp的用户帐户运行,并具有适当的FS读/写权限

PaaS风格

  • 大多数情况下这是一个有争议的问题,因为你的PaaS供应商(heroku,nodejitsu,模数等)会为你指定这个
  • 你只需要将你的应用程序joinnpm模块,就完成了

docker风格

对于docker世界来说,它与PaaS类似,它并不重要,但是,例如,如果将代码安装到容器内的/home/app ,例如对于phusion的baseimage ,docker的东西只会对你“工作”