木偶:pipe理(大量)Apache虚拟主机

我通常通过configurationpipe理来学习,特别是使用puppet来实现。 我已经做了一些通用的研究( 也在SF上 ),现在我正在考虑Apache VirtualHosts。

我们在两个系统上托pipe了很多LAMP网站(目前在几百个范围内):一个Apache2 / mod_php一个和一个MySQL一个 – 基本上与SF上的另一个问题相反, 在那里他pipe理大量服务器,每台服务器只有很less的虚拟主机其实不是一个,我不知道)。 我还没有把傀儡的工作configuration放在一起,但这不应该是一个问题,这里有很多 例子和配方。

除了显而易见的apacheconfiguration文件外(我猜这里没有问题),每个虚拟主机都需要创build一些目录并检查权限(例如,每个虚拟主机的根目录包含一个文档目录,一个专用的目录目录,一个专用php会话文件目录,可能是SSL证书等)在Web服务器上,以及用户+ MySQL服务器上的一个或多个数据库。

添加一个新的虚拟主机需要傀儡来创build这些,删除一个将需要傀儡运行一些脚本,将备份用户数据,然后从两台服务器中删除实时数据,但每一个傀儡代理运行,然后将检查存在目录,数据库,权限等

在上百个虚拟主机上运行每个木偶运行的所有这些检查,特别是文件系统(在web服务器上),特别是在将来系统将被加载更多的时候,我是否要求麻烦? (假设我们将1000〜2000个网站的范围定为合理的每个服务器的最大值)。

网上有这样的经验吗? 我googlesearch,但没有发现,也因为有一个低信号/噪音比search“木偶”和“阿帕奇”…

我怀疑,pipe理大量的Apache虚拟主机不会是一个问题,但我不能肯定地说。 可接受的性能是由您的业务需求定义的。 只有你可以决定是否足够快。 这是一个减lessCPU负载的体面的线程: https : //groups.google.com/forum/?fromgroups#!topic/puppet- users/ sxtMvCnKnys[1-25]

总结线程:

  • 增加傀儡代理运行之间的延迟
  • 不要安排傀儡,只能用傀儡踢或集体动作来触发跑步
  • 安排Apache更改只在某些时候发生。
  • 使用两种不同的环境(维护和生产)来pipe理事物。 保持生产轻量化,并使用维护进行更改。

下面是一个从PuppetLabs网站pipe理apache虚拟主机的例子: http : //docs.puppetlabs.com/learning/definedtypes.html#an-example-apache-vhosts

设置和删除configuration应该不成问题。 最大的问题是删除Web应用程序/站点的数据文件。 为此,我会推荐共享存储,如NFS / AFS。 如果您不使用共享存储,请确保用户生成的数据保持不变,备份或迁移到新服务器。

我怀疑你是在一个集体托pipe的情况下,像一个networking托pipe公司,所以我build议网站的个人网站名称不被编码到您的木偶清单。 为此,我build议使用Hiera < http://puppetlabs.com/blog/first-look-installing-and-using-hiera/ 。 Hiera允许您使用单独的方式将虚拟主机列表存储到真实服务器映射中。 您可以使用Hiera的平面文件或数据库。 可悲的是,我不知道Hiera足以指导您如何设置您可能需要的多层Hiera数据结构,但我至less可以将您指向Hiera的总体方向。