我最近买了第二个networking服务器,因为我担心我的旧服务器硬件故障。 现在我有了第二台服务器,我希望再做一点,那么只需要一台服务器备用,然后整天复制。 只要在那里,我不如得到我们的一些优势!
我有一个网站由Ubuntu的12.04,Nginx,PHP的FPM,APC,MySQL(5.5)和couchdb。
我目前正在testing的configuration,我可以实现故障转移,并充分利用额外的硬件更快的响应/分布式负载。
我现在正在testing的设置包含了ip failover和两个相同的服务器的心跳。 两台服务器中只有一台有公网IP地址。 如果一台服务器崩溃,另一台服务器接pipe公共IP地址。 在传入的请求中,nginx将请求转发到php-fpm到服务器b的服务器a(如果两个服务器都处于活动状态,则为50/50)。 一旦请求发送到php-fpm,两台服务器都会查看mysql服务器的localhost。 我使用master-master mysql复制。 文件系统与lsyncd同步。
这工作得很好,但林阅读它((MySQL)的社区不鼓励。
我能想到的另一个select是使用一个服务器作为一个MySQL主服务器和一个服务器作为一个Web / PHP服务器。 服务器仍然会同步他们的文件系统,仍然会运行相同的重复软件(nginx,mysql),但可以使用master slave mysql复制。 只要麻烦的服务器活着,我可以只喜欢nginx听ip a和mysql到ip b。 如果一台服务器停机,另一台服务器可以通过简单的IP交换来接pipe另一台服务器的任务。
但即时通讯全新的,所以我会非常重视您的专家意见。 两种装置中的任何一种都不错? 如果您对此有任何想法,请告诉我!
PS,虚拟化,托pipe在不同的位置或主动/被动设置不是解决scheme即时寻找。 我觉得虚拟服务器要么太慢,要么太贵。 我已经在另一个位置有一个被动的故障转移。 但在发生崩溃的情况下,我发现由于DNScaching,网站仍然无法访问太久。
我们在我们的所有客户HA盒子和我们的Magento MicroCloudTM /configuration上进行,以便故障转移系统不会闲置。 看看DRBD,Linux VServer和心跳。
阅读以下内容以了解它。
http://linux-vserver.org/Getting_high_with_lenny
警告但是,一如既往,我们build议不要尝试这样做,除非您有丰富的经验,因为您更可能最终形成一个更不可靠的configuration,更难以debugging,如果最终出现分裂的情况,更有可能有数据丢失…比一个普通的旧的单一服务器。