2台服务器,高可用性和更快的响应

2台服务器,高可用性和更快的响应

我最近买了第二个网络服务器,因为我担心旧服务器的硬件故障。现在我有了第二个服务器,我希望做更多的事情,而不仅仅是让一台服务器待机并全天复制。只要它在那里,我就可以充分利用它!

我有一个由 ubuntu 12.04、nginx、php-fpm、apc、mysql (5.5) 和 couchdb 提供支持的网站。

我目前正在测试可以实现故障转移并充分利用额外硬件来获得更快的响应/分布式负载的配置。

我现在测试的设置涉及用于 IP 故障转移的心跳和两台相同的服务器。两台服务器中只有一台具有公共 IP 地址。如果一台服务器崩溃,另一台服务器将接管公共 IP 地址。对于传入请求,nginx 将请求转发到 php-fpm 到服务器 a 或服务器 b(如果两台服务器都处于活动状态,则 50/50)。一旦请求发送到 php-fpm,两台服务器都会在 localhost 上查找 mysql 服务器。我为此使用主-主 mysql 复制。文件系统与 lsyncd 同步。

这个方法很有效,但是我读到它受到了(mysql)社区的劝阻。

我能想到的另一个选择是使用一台服务器作为 mysql 主服务器,另一台服务器作为 web/php 服务器。这些服务器仍将同步其文件系统,仍将运行相同的重复软件 (nginx、mysql),但可以使用主从 mysql 复制。只要两台服务器都处于活动状态,我就可以选择 nginx 监听 ip a,mysql 监听 ip b。如果一台服务器宕机,另一台服务器可以通过 ip 切换接管另一台服务器的任务。

但我对此完全陌生,因此我非常重视您的专业建议。这两种设置都很好吗?如果您对此有任何想法,请告诉我!

PS,虚拟化、在不同位置托管或主动/被动设置不是我想要的解决方案。我发现虚拟服务器要么太慢要么太贵。我已经在另一个位置有一个被动故障转移。但如果发生崩溃,我发现由于 DNS 缓存,该网站仍然无法访问太久。

答案1

我们在所有客户 HA 盒和 Magento MicroCloudTM/ 配置上都执行此操作,以便故障转移系统不会闲置。查看 DRBD、Linux VServer 和心跳。

请阅读以下内容以了解更多信息。

http://linux-vserver.org/Getting_high_with_lenny

警告 但与往常一样,我们建议您不要尝试这样做,除非您有丰富的经验,因为您很可能会得到一个更不可靠的配置,这更难调试,如果您最终陷入裂脑情况,更有可能丢失数据...比起普通的单个服务器。

相关内容