Apache2.2 vhosts - 使用一个文件和多个 vhosts 的缺点

Apache2.2 vhosts - 使用一个文件和多个 vhosts 的缺点

由于我最近越来越多地使用 Apache2.2,这个想法在我脑海中闪过(如果这看起来像一个“愚蠢”的问题,请原谅,我仍然在学习很多东西)

如果仅使用 hosts-available 中的一个文件来配置监听同一端口的多个 vhost,会有什么明显的缺点吗?
当然,除此之外,了解哪些站点处于活跃状态也不是很实用。

如果您要声明一个文件中包含 100 个站点,那么需要权衡哪些方面?
首先想到的是反应速度,解析该文件当然需要更长的时间,但这何时会成为加载时间等的真正问题?
此外,如果站点繁忙,端口也会受到请求的重击,但同样,这何时会成为问题?

请注意,我意识到这更像是一个“辩论”问题,但我没有找到有关这种特定情况的任何有用信息,所以我想我会来这里问。


回应评论和回答(我自己还不能添加评论)

是的,我似乎混淆了术语,我的意思是在一个配置文件中定义多个虚拟主机,而不是一个具有许多不同站点条目的虚拟主机。这在许多情况下确实非常棘手(几乎不可能?)。我已编辑标题以澄清问题。

答案1

我认为你问的是两个不同的问题:

  • 是否可以将大量配置放在一个文件中,而不是将其拆分到多个文件中。对于性能,我认为这根本不重要(尽管管理是另一个问题,正如@dwalker109 回答的那样)。解析 100 个小文件与解析 1 个大文件的加载时间差异微不足道,并且只会在服务器重新加载时发生。配置加载一次,然后保存在内存中。

  • 是否可以在同一个 IP 地址和端口上为大量虚拟主机提供服务。是的,这完全没问题。如果虚拟主机的数量非常大(远远超过 100 个),那么 Apache 将需要大量内存来保存所有配置。但对于 100 个站点来说,这又是微不足道的。如果站点很繁忙,那么是的,性能可能会受到影响,但我认为无论流量是在一台虚拟主机上还是分布在多台虚拟主机上,这都无关紧要。

答案2

您在问题中提到了这一点,但我将在这里进行详细说明。

  • 根据我的经验,将大量虚拟主机定义在单个文件中会产生很大的管理开销。您不会看到任何实际的性能损失,但在这种情况下查找和使用虚拟主机可能会令人沮丧。如果您将此安装传递给其他人,他们可能不会感谢您。

  • 这样做会违背 Debian 管理站点的标准方式,并且a2ensite类型工具将不再按预期工作。出于配置惯例的考虑,我敦促大家尝试坚持使用原始方式来做这些事情。

相关内容