我是一名IT专业的学生,并被要求为多个网站构build一个Web服务器集群。 经过两周的search,阅读和testing,我来到这里寻求帮助。
我们需要的是一组web服务器,负载均衡和故障切换。
我现在正在运行testing设置:
2台食人鱼服务器在故障转移和负载平衡超过3个networking服务器(nginx / php5)。
我遇到的问题:
我曾经尝试过的:
尝试:
问题:
2个主要服务器在高活动时负载很高
会话不同步,每个服务器交换机都需要一个新的login
如果其中一台服务器没有应答,则停止切换到下一台服务器
尝试:
问题:
为了解释我真正的问题是什么,我们要build立一个高可用性和快速的Web集群。 Web集群应该实时同步所有数据。 我不知道如何做到这一点! 在这个networking集群将运行大量的网站,这意味着它应该都是自动的,用户(网站)不会知道这是在多个服务器上,但会认为这是一个真正的强大的服务器。
谷歌或Facebook如何做到这一点?
我确实想过有一个单独的服务器,客户可以在其上编辑Web服务器,真正的服务器将不会被编辑,直到他们的网站推到Web群集。 这可以通过rsync完成,但这似乎不是一个好的解决scheme..会议可以在共享存储上,我想呢?
任何想法或解决scheme,欢迎!
知道如何设置这样的东西需要花费数年的学习,实践和经验。 还有很多,很多解决scheme。
一些提示:
忘掉DRBD。 如果要保持文件系统实时同步,则使用复制文件系统(如HDFS或AFS)。
2个主要服务器在高活动时负载很高
WTF? 你已经build立了2个nginx服务器作为3个nginx服务器的代理? 你在一个非常基本的层面上做错了什么,或者没有正确地解释你的设置。
如果您需要共享会话,那么这应该是您的列表的首要工作。
这可以通过rsync完成,但这似乎不是一个好的解决scheme
如果(除了会话存储,如果你select了根目录 – 但是我坚持使用复制数据库),在服务器之间共享数据的唯一要求是发布网站,实际上这是一个非常好的解决scheme 。 它具有最小的依赖性,它可以从长时间的中断恢复,这是非常强大的。 事实上,设置它并不需要很多努力,所以你甚至不需要明确提名的服务器来应用编辑。
您可以使用NFS导出用于存储所有网站根目录的卷并将其挂载到所有networking服务器上,而不是同步文件系统,因此每个网站都可以轻松拥有相同的内容。
关于通过群集进行的会话pipe理,我build议采用不同的方法,使单个用户会话保持在同一个networking服务器上,换句话说就是粘性会话。
IBM Tivoli Access Manager用作反向代理时遇到了这个问题,该产品具有一些联结选项来处理会话持久性。 如果你使用LVS,你可以在这里find解决scheme