SSL网站的高可用性

我们的一个Web服务器集群提供了一个繁忙的电子商务应用程序的数量适中。 目前,每个站点都位于特定的Web服务器上,并且具有镜像到群集中另一个Web服务器的热备份副本。 如果服务器发生故障,则需要手动过程来重新激活故障切换服务器上的站点。 我们已经到了一个需要更好的解决scheme的地步,不仅仅是因为失败,而且也是为了让我们可以把机器停下来进行维护,而无需停机。

我们正在考虑build立一个2-3个HAProxy服务器集群(主要是因为它有一个很好的性能logging)放在Web服务器的前面。 从我读过的内容来看,它将满足我们对会话pipe理的大部分需求,并将用户保留在同一台服务器上等。我们最关心的是SSL证书。 每个站点都有自己的SSL证书。 由于最终用户将连接到HAProxy服务器,我只能假设我们需要将证书移动到HAProxy群集中的每台机器上。 由于HAProxy不直接处理SSL,我读过我们可以通过反向代理types转发安排在同一个系统上使用Apache + mod_ssl来完成这项工作。

那么,我的具体问题是HAProxy究竟是否适合这项工作? 现有的SSL证书(目前在Windows 2003 Server上,有几个是EV-SSL证书)是否可以移植到Apache? 是否还有其他软件或硬件解决scheme,我们应该考虑(使用HAProxy与SSL站点似乎比它需要更复杂)? 在设置高可用性SSL Web群集时我们可能没有考虑过其他任何警告?

如果您打开Microsoft / IIS 7解决scheme,则可以select使用IIS7的应用程序请求路由(ARR)。

本文有关learn.iis.net的一篇介绍/教程: 使用应用程序请求路由的HTTP负载平衡 。 有一个名为“SSL卸载”的function:

启用此function后,ARR服务器和应用程序服务器之间的所有通信都将以明文forms完成,即使是从客户端到ARR服务器的HTTPS请求也是如此。 当ARR服务器和应用程序服务器都部署在可信networking(如同一个数据中心内)时,启用SSL卸载不会牺牲安全性。

此外,启用此function可进一步帮助最大限度地提高应用程序服务器上的服务器资源,因为它们不必花费周期来encryption和解密请求和响应。

如果您想深入研究这个主题,下面是另一篇关于ARR的文章 ,它解释了如何结合硬件负载平衡器使用该机制。

在过去,我设置了类似的东西,但是我们正在运行相当耗费资源的mod perl应用程序。 所以我们最终在应用程序服务器前面使用了squid,我们使用apache + proxy来实现ssl卸载,然后我们可以通过squid来caching所有的内容。 对于集群部分,我们使用LVS(linux虚拟服务器)+心跳进行故障转移负载平衡器对于我使用的ssl卸载方法,请参阅我的博客上的这篇文章以获取更多信息

有一些方法可以configurationHAProxy后面的内容,但是需要在所有将要使用的服务器上使用SSL证书。 我遇到的另一个选项,但从来没有使用的应用程序称为英镑devise与负载均衡ssl服务器在脑海中