linux - 在服务器上提供 Node.js Web 应用程序的正确文件夹是什么?

标签 linux node.js centos6

作为引用,假设开发人员使用 ngnix 服务器构建了一个普通的 php web 应用程序。将 Web 文件托管在 VPS 上的/srv/www 目录中是有意义的。/srv/www 的所有者和组是 nginx。

使用 NodeJS 运行所述 Web 应用程序时,托管 Web 应用程序的正确目录是什么?该目录的正确文件夹权限是什么?当然,请记住安全非常重要。操作系统,在本例中是 Centos 6.5。

最佳答案

权限

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

  • 大多数文件 440 归 myapp 所有,组设置为 admin
    • 如果应用需要写入它们,文件可以是 640
    • 如果管理员通常想要写入它们,文件可以是 460
  • 大多数目录的 550 归 myappadmin 组所有
    • 如果应用程序需要写入它们,目录可以是 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/

相关文章:

javascript - 二进制解码为 JavaScript

c++ - 您如何将所有链接依赖项打包到一个 Linux 静态库中?

node.js - 如何从数据库动态添加路由到angularjs

.net - 为 Web 应用程序实现单点登录解决方案?

node.js - 如何从 Node js api 调用返回字符串

linux - linux下创建负载均衡器和radius认证

linux - 当我 ssh 连接到 vagrant centos 6 时,我收到警告 setlocale LC_CTYPE

centos - yum 安装管理器在 centos 6.6 中不起作用

c - 进程间信令查询 Linux

mysql - php cli 脚本挂起,没有消息