将与 www 相关的文件存储到 /home 中是否是不好的做法?

将与 www 相关的文件存储到 /home 中是否是不好的做法?

当我设置一个新的网络服务器(apache/mysql/nodejs/mongodb)时,我习惯将每个与 www 相关的资产(apache www 文件、node js 应用程序、mysql/mongodb 数据库文件)存储到/srv/www我符号链接到的文件中/home/srv

这样做是为了轻松备份所有内容(因为所有内容都在 /home 中)并将所有内容存储在一个大的隔离分区中(通常为 / 50G,除交换到 /home 之外的所有其他内容)。

我读到过,这样做可能会遇到一些问题。

这算是不好的做法吗?

mkdir --mode=0755 /home/srv; rm -rf /srv; ln -s /home/srv /srv && chown root:root /home/srv
mkdir --mode=0770 /srv/www; chown www-data:www-data /srv/www

答案1

您会从 C:\Users 提供您的 IIS 内容吗?

这里的问题是路径的语义。

/home在 unix 中被很好地理解为包含用户数据的路径,因此一些系统会对其中的数据类型做出假设(SELinux 是我能想到的一个很大的系统,但在 Ubuntu 中这并不是什么大问题)。

例如,如果您执行了此操作并且突然对用户有自动挂载要求,则可能会出现其他问题。

我通常会尝试遵循发行版的“规范”。Redhat 倾向于将服务特定数据放入其中/var/lib

当然,这里也存在灰色地带。

  • 当其用户主要只是用于传输 Web 内容的 SFTP 用户时,您会怎么做?
  • mod_userdir 如何适应这一切。

对于第一点,就我个人而言,如果用户只不过是服务用户,我会让他们的主目录指向其网站文档根目录的适当位置。

至于 mod_userdir,这意味着它是一个真实的用户,作为外围设备拥有一个 Web 文件夹,所以我会将该 Web 内容保存在 中/home

从“系统管理员团队”的角度来看,我认为这种设置充其量是草率和混乱的,或者最坏的情况是缺乏能力。你需要有充分的理由去做这样的事情。

纯粹是出于对系统的自豪感——将它们设置为使用有意义的路径(并且尚未预加载功能)。我认为将内容放在上下文之外的位置并不是组织服务的好方法。

这样做是为了轻松备份所有内容(因为所有内容都在 /home 中)。

你不能把所有数据都放在另一个目录中/var/lib/srv?坦白说,备份多个路径真的需要这么多努力吗?

并将所有内容存储在一个大的独立分区中(通常为 / 50G,除交换到 /home 之外的所有其他内容)。

嗯,只需提供/var/lib/srv作为大分区即可。

我并不想说得那么苛刻,但在我的经历中,我发现其他人看到系统管理员做这样的事情时往往会感到不快。我的意思不是“重大问题警报”,而是这往往是人们会记住但没人告诉你的事情,这最终可能会在同事眼中抹黑你。

答案2

“不良做法”很大程度上是相对的。

在大多数 Unix 系统上/var/www是“包含主/默认网站的目录”,并且/home/user/public_html是您访问http://example.com/~user(通过mod_userdir)时提供的目录。
一般来说,您应该遵守该惯例,因为这是人们所期望的。

如果你因为某种原因不能遵循这个惯例,通常最好使用符号链接,以便它们至少似乎将它们放置在它们应该在的位置,但您需要注意其他因素(例如 SELinux),这些因素可能会导致问题,具体取决于您的服务器的配置方式。


作为最佳实践的一部分,您还应该观察合理的分区方案这将帮助您决定备份磁盘的哪些分区/部分,以及每个分区/部分要占用多少空间。
从这个意义上讲,我并不真正同意Mlfe 的建议改为“只配置/var/lib/srv改为大分区”,或者你的布局为“50G 用于/”,一个交换分区,以及“其他一切都到/home”——你应该使用类似这样的参考来确定你特定系统(Ubuntu)上东西的标准位置。手册hier,然后正确构建分区布局以支持您的特定需求。
这样可以避免 Mlfe 所说的情况,即您实施了一些非标准的东西,并永远被人们记住为“把网页放到下面去的傻瓜/home”或类似的东西。

相关内容