预留 Web 服务器 - 如何几乎实时地同步它们

预留 Web 服务器 - 如何几乎实时地同步它们

也许我的问题有点愚蠢,但想法是有一个备用网络服务器,当主网络服务器变为不活动状态(DDos 或任何其他事件)时,它将被激活。

请说出此解决方案的常见做法。操作系统将是 freeBSD。我对软件包名称、方法以及如何以最小延迟几乎实时同步文件非常感兴趣,尤其是数据库服务器,因为付款和会话等内容必须保持在第一台服务器上启动时的状态。我的第一个想法是 rsync,但如果您考虑需要传输多少东西,这对我来说听起来很无趣……我甚至会同意克隆内存堆栈 =))

附言:即使你们不明白我在说什么,或者我需要更具体一点,也请提出你们的所有想法,以进行各种同步 =) 谢谢。

编辑:

谢谢你们,现在我对故障转移有很多想法。我可能会使用具有负载平衡的 HA 集群。

答案1

从高层次上讲,您要做的是创建一个具有故障转移功能的双节点高可用性集群。

http://www.todoo.biz/cluster_ha_freebsd.php

网络服务器托管什么类型的页面?是否涉及数据库?

答案2

你可能想要了解一些关于 FreeBSD 上的 GGATED 的文献,但如果你愿意使用其他操作系统来存储你的 MySQL 数据库,那么DRBD心跳是实时镜像数据和处理mySQL集群自动故障转移的良好解决方案。

编辑:这也无法减轻对您的外部 IP 的 DDOS 攻击。

答案3

在 Linux 领域,Web 服务器会安装一个集群文件系统(例如 OCFS2)。我不知道 FreeBSD 领域中是否存在“真正的”集群文件系统。您可以使用带有“noac”安装选项的 NFS,但性能很差,因此不推荐将其作为稳健/可扩展的解决方案。

干杯

编辑:至于 Web 服务器的备用性质,请使用像 nginx 这样的代理/负载平衡器来反向传输两个服务器。nginx 的配置实际上将备用指定为“备份”。

答案4

这个想法是在主服务器出现故障时进行故障转移。如果这个问题域没有约束,这可以很容易地实现,因为您没有会话亲和性组件或中央数据库。

现在,如果您有这种类型的限制,您仍然可以这样做,但要以更严格的方式进行。例如,如果您想在澳大利亚和美国各拥有一台服务器,那么服务器将很难通过互联网共享一个公共数据库。

然而,如果您可以忍受故障转移到同一个数据中心(网络),在这种情况下唯一的问题是您保留会话 - 如果它们进入数据库,那么一切就都设置好了,因为两个服务器都可以读取该数据。

对于服务器内容,即使您觉得 rsync 很差劲...但它只是完成了工作。还有其他解决方案,如使用通用文件系统等。

如果您的服务器位于地理上分散,您可以查看分布在互联网上的非 SQL 数据库(查看来自 Google 的 AppEngine:) 或使用 Maxwell 建议的工具之一。

相关内容