如何根据以下要求构建冗余的Web服务器集群?
- 两个 Ubuntu Server 12.04 LTS Active-Active 节点(真正负载平衡;不是循环)。
- Apache Web 服务器
- 共享存储上的站点内容(或在两台服务器上镜像和同步)
如能提供详细的步骤将不胜感激。
答案1
这种设置取决于通过网络访问的内容类型:严格静态、动态(PHP,...)、来自应用程序服务器(tomcat、Jboss,...)
对于负载平衡部分,重要的是要知道您是否需要集群负载平衡器(以避免在此级别出现单点故障)、会话持久性,以及是否有资源将负载平衡器置于 Web 服务器之外。
您没有解释如何为 Web 服务器生成内容。如果内容偶尔在外部设备上生成,则可能不需要为它们提供共享存储或复制存储。只需将新内容从发生开发的机器推送到两台服务器而不是一台服务器就足够了。
一种紧凑的方法是安装Linux 虚拟服务器在两个 Web 服务器上以及 apache 上。
如果站点正在对 Apache 文档根目录的文件系统进行修改,则可能有许多解决方案,具体取决于您的应用程序:
- 只需使用 crontab 在两个服务器之间定期执行 rsync
- 在第三台服务器上创建 NFS 共享,并将其挂载为 Apache 的文档根目录
- 如果内容变化很大,而你又不想丢失任何东西,你可以在灾难恢复数据库配置,在文档根目录的块级别进行同步复制。
- 构建一个结合 DRBD 和共享机制(NFS = 文件级共享,iSCSI = 块级共享)的冗余共享存储盒。共享方法的选择很大程度上取决于您的应用程序(并行连接数、I/O 数量等)
总之,由于您的输入太模糊,因此很难详细详尽地回答您的问题。必须根据应用程序的要求设置正确的解决方案,但这里没有详细说明。