木偶:管理(大量)Apache VirtualHost


9

我正在学习一般的配置管理方式,尤其是使用puppet来实现它。我已经进行了一些一般性研究(也在SF上),现在我正在考虑Apache VirtualHosts。

我们在两个系统上托管了许多LAMP网站(目前在数百个范围内):一个Apache2 / mod_php一个和一个MySQL系统 -基本上与SF上的另一个问题相反,他在该问题上管理着很多服务器,每个服务器只有很少的虚拟主机(如果实际上不是一个,我不知道)。我还没有在puppet中整理一个有效的配置,但这应该不是问题,那里有很多 示例和食谱。

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

添加一个新的虚拟主机将要求puppet创建虚拟主机,删除一个虚拟主机则需要puppet运行一些脚本来备份用户数据,然后从两台服务器中删除实时数据,而且每一个运行的puppet代理都将检查是否存在目录,数据库,权限等。

当每次运行木偶时都要运行数百个虚拟主机时,特别是在文件系统中(在Web服务器上)运行虚拟主机时,尤其是将来将来会加载更多系统时,我是否会遇到麻烦?(假设我们将1000-2000个网站范围定位为每个服务器的合理上限)。

有没有在网上进行此操作的经验?我用谷歌搜索,但一无所获,也因为搜索“木偶”和“ apache”时信噪比低。

Answers:


4

我怀疑管理很多apache虚拟主机不会有问题,但是我不能肯定地说。可接受的性能由您的业务需求定义。只有您可以决定它是否足够快。以下是有关减少CPU负载的体面线程:https : //groups.google.com/forum/?fromgroups#!topic/puppet- users/ sxtMvCnKnys[1-25]

总结线程:

  • 增加人偶特工运行之间的延迟
  • 不要安排人偶,而只能使用人偶踢或mcollective触发跑步
  • 安排仅在特定时间进行Apache更改。
  • 使用两个不同的环境(维护和生产)来管理事物。保持生产轻量化并使用维护进行更改。

以下是从PuppetLabs网站管理apache虚拟主机的示例:http : //docs.puppetlabs.com/learning/definedtypes.html#an-example-apache-vhosts

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

我怀疑您像网络托管公司一样处于大规模托管的情况,因此我建议不要将站点的单个站点名称编码到您的人偶清单中。为此,我建议使用Hiera < http://puppetlabs.com/blog/first-look-installing-and-using-hiera/。Hiera允许您使用一种单独的方法来存储虚拟主机列表到真实服务器的映射。您可以在Hiera中使用平面文件或数据库。令人遗憾的是,我对Hiera的了解不足,无法指导您如何建立您可能需要的多层Hiera数据结构,但是至少可以向您指出Hiera的总体方向。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.