我正在对我正在进行的项目进行一些研究,对于负载平衡和 mpm-itk 方面该做什么我有点困惑。
我目前有一个运行 apache2-mpm-itk 的 Web 服务器 (webA),它将用户文件存储在 中/sites/<sitename>
。因此,如果我点击www.siteA.tld
它,它会从 siteA 中提取/sites/siteA
并以用户 siteA 身份运行。
这对于单个服务器来说很好,但如果我现在将 haproxy 放在前面,并直接指向 webA 和 webB,则只有到达 webA 的请求才会起作用。(显然,因为我还没有同步这些框。)
问题是,同步这些机器的最佳方法是什么?
- 使用 rsync 同步
/sites/*
文件夹?(但是用户账户怎么办??) - 使用 NFS 存储
/sites/*
文件夹,并以某种方式同步用户? - 还有其他一些与 mpm-itk 配合得更好的好方法吗?!
我想我真正想要的是如何保持用户帐户同步,以便 mpm-itk 仍然可以在任一机器上运行。
编辑:不一定是 mpm-itk,但无论如何我都可以将 apache 作为单独的用户运行,实现负载平衡,并保持多台机器之间的用户帐户同步。
答案1
如果要使用 mpm-itk,则必须确保两台机器上的 /etc/passwd 和 /etc/group 文件的内容相同。这意味着您要复制的文件具有相同的 UID 和 GID。至少对于 mpm 使用的部分而言。只要同步上述内容,然后将网站基础文件夹的内容复制到新机器上(通过 rsync 或其他任何方式),您就可以轻松完成所需的操作。这可能涉及一些脚本编写和用左手挠右耳的感觉,但它确实有效。
另一方面,如果您确实想进行水平扩展,我建议采用以下两种方法之一:
a) DRBD 以类似于网络 RAID1 的方式复制分区 - 您需要做的就是同步用户内容
b) 尝试分布式文件系统。GlusterFS 已经足够成熟,设置起来应该不难。
以上任何一种方法都可以让你接近你想要实现的扩展目标。