![预留 Web 服务器 - 如何几乎实时地同步它们](https://linux22.com/image/532095/%E9%A2%84%E7%95%99%20Web%20%E6%9C%8D%E5%8A%A1%E5%99%A8%20-%20%E5%A6%82%E4%BD%95%E5%87%A0%E4%B9%8E%E5%AE%9E%E6%97%B6%E5%9C%B0%E5%90%8C%E6%AD%A5%E5%AE%83%E4%BB%AC%20.png)
也许我的问题有点愚蠢,但想法是有一个备用网络服务器,当主网络服务器变为不活动状态(DDos 或任何其他事件)时,它将被激活。
请说出此解决方案的常见做法。操作系统将是 freeBSD。我对软件包名称、方法以及如何以最小延迟几乎实时同步文件非常感兴趣,尤其是数据库服务器,因为付款和会话等内容必须保持在第一台服务器上启动时的状态。我的第一个想法是 rsync,但如果您考虑需要传输多少东西,这对我来说听起来很无趣……我甚至会同意克隆内存堆栈 =))
附言:即使你们不明白我在说什么,或者我需要更具体一点,也请提出你们的所有想法,以进行各种同步 =) 谢谢。
编辑:
谢谢你们,现在我对故障转移有很多想法。我可能会使用具有负载平衡的 HA 集群。
答案1
从高层次上讲,您要做的是创建一个具有故障转移功能的双节点高可用性集群。
http://www.todoo.biz/cluster_ha_freebsd.php
网络服务器托管什么类型的页面?是否涉及数据库?
答案2
答案3
在 Linux 领域,Web 服务器会安装一个集群文件系统(例如 OCFS2)。我不知道 FreeBSD 领域中是否存在“真正的”集群文件系统。您可以使用带有“noac”安装选项的 NFS,但性能很差,因此不推荐将其作为稳健/可扩展的解决方案。
干杯
编辑:至于 Web 服务器的备用性质,请使用像 nginx 这样的代理/负载平衡器来反向传输两个服务器。nginx 的配置实际上将备用指定为“备份”。
答案4
这个想法是在主服务器出现故障时进行故障转移。如果这个问题域没有约束,这可以很容易地实现,因为您没有会话亲和性组件或中央数据库。
现在,如果您有这种类型的限制,您仍然可以这样做,但要以更严格的方式进行。例如,如果您想在澳大利亚和美国各拥有一台服务器,那么服务器将很难通过互联网共享一个公共数据库。
然而,如果您可以忍受故障转移到同一个数据中心(网络),在这种情况下唯一的问题是您保留会话 - 如果它们进入数据库,那么一切就都设置好了,因为两个服务器都可以读取该数据。
对于服务器内容,即使您觉得 rsync 很差劲...但它只是完成了工作。还有其他解决方案,如使用通用文件系统等。
如果您的服务器位于地理上分散,您可以查看分布在互联网上的非 SQL 数据库(查看来自 Google 的 AppEngine:) 或使用 Maxwell 建议的工具之一。