IIS和ASP.NET MVC的固体故障转移?

我们的团队目前正在计划我们下一个看起来很激动人心的大项目!

我们的产品将是一个ASP.NET MVC网站,可以在客户自己的服务器上部署,也可以在我们的服务器上支付一个实例(这将通过在networking上运行的configuration服务自动完成)另一个话题)。

我们不希望在基础设施方面走在顶端,我们不一定需要,所以对于最初的部署,我们希望有2个运行IIS7的Win2k8盒子作为networking盒子。

1个主要的SQL Server 2008数据库服务器作为主服务器运行,而作为从服务器/故障转移服务器的服务器略微less一些。

SQL故障转移不是问题(因为我们是SQL Server的书呆子!)

但是,我们不确定如何实现networking故障转移,因为现在我们不想在早期阶段将两台networking服务器之间的负载分开,而是让它在故障转移之前耐心地等待故障转移。

我已经研究过像HAproxy之类的各种高可用性系统,但并不完全了解如何进行这种configuration。

(我并不是说我们正在寻找HAproxy的build议..这只是我们见过的大浪和ldirectord等系统中的一个。)

我也应该注意到,如果需要的话,我们并不害怕在Linux机器上运行负载平衡器!

使用haproxy设置故障转移非常简单,非常灵活。 把它塞到一台机器上,无论你指向哪个地方,它都会转发连接。 您可以依靠其基本的http检查来指向备份服务器,或者指向脚本页面,以获取更多关于何时切换的复杂规则。

你可能主要是用mvc来避免它,但是如果你使用会话状态,你需要在web服务器之间共享它。

负载均衡器然后成为一个SPoF,所以你需要在多台机器上运行它,并使用循环赛DNS或类似的东西,让他们共享一个IP地址。