nginx 文件的最佳路径

nginx 文件的最佳路径

我一直在为各种文件以及它们应该放在哪里而苦恼pathsnginx众所周知,我们可以改变存放文件的位置万维网我们的目录web app,以及相关log文件。

我发现的问题是,我有用于调用bashRuby用户脚本SSH以及crontab需要访问这些nginx文件各个部分的脚本,以及各种文件的计划网络副本,更不用说这些文件的更新了。

我遵循了nginx各个发行版中软件包安装所推荐的静态路径,但是我经常遇到permissions问题,因为path在可访问性方面并不是最佳的。因此,我会研究各种主要linux路径,并选择一些在设计时考虑到所有这些因素,同时保持良好安全性的路径。我看过各种位置,现在我又遇到了这个问题(crontabs无法正常工作、permissions各种项目出现问题等),我想问一下所有这些应该放在哪里。

我的应用程序不是标准statichtml 应用程序。我有一个正在运行的Rack应用程序app server,一个Gemfile,以及任何传入的上传等。

我正在评估的两个地点是:

然而...这是我从/usr目录中读到的内容:

/usr 是文件系统的第二个主要部分。/usr 是可共享的只读数据。这意味着 /usr 应该在各种符合 FHS 的主机之间共享,并且不得写入。任何特定于主机或随时间变化的信息都存储在其他地方。

大型软件包不得使用 /usr 层次结构下的直接子目录。

所以我迷路了。有人能推荐一个可读/可写文件的位置吗,这样我编写脚本时麻烦就会降到最低cron

答案1

托管网站文件的“绝对”正确位置是/srv/www。从那里我通常将其“分区”到域相关目录。

因此总的来说/srv/www/example.com具有以下结构/子目录:

  • public存储与该域/网站绑定的任何可公开访问的文件
  • logs存储与该域绑定的任何日志文件(NGINX、PHP-FPM 等)
  • sessions存储用户特定会话,例如 PHP 会话

无论您使用 PHP-FPM 还是任何其他“脚本守护程序”,您都需要通过调整守护程序设置并正确 chmod/chown 文件来正确设置权限。没有神奇的位置可以确保您不必配置权限模型。 看NGINX 和 PHP-FPM。我的权限应该是什么?- 这非常适用于大多数网站设置,与 PHP-FPM 无关:

  • 为每个网站添加单独的用户,以便进行适当的隔离,例如example
  • 配置脚本守护进程以该用户身份运行
  • 让您的网络服务器(NGINX)用户成为您网站用户的组成员: usermod -a -G example nginx。这允许 NGINX 读取已将组权限设置为读取的文件,并且您可以通过简单地从中删除组权限位来保护您不想读取的文件(配置文件)chmod

总的来说,从来没有权限问题:一切都由同一个用户拥有和“运行”!

答案2

投票关闭此问题,因为问题确实很模糊。此外,您试图将问题归咎于您的工具,而它们并不是问题的根源。在某种程度上,MAC 子系统以及包管理系统处理配置文件的方式限制了您可以/应该做的事情。但是,由于您没有告诉我们这是哪个发行版,我们不知道这是否相关,更不用说提出建议了。

在尝试解决此问题时,您应该首先创建哪些用户帐户需要访问哪些文件的综合列表(在考虑这些文件位于何处之前),并制定适当的权限模型。

当然,将任何脚本或内容存储在 /usr 下是极不合适的。

相关内容