如何获得SSL负载平衡?
我必须将ASP.NET应用程序部署到两个单独的IIS服务器中。我的应用程序通过HTTPS / TLS运行。我的ASP代码必须处理客户端SSL证书,这意味着我不能使用简单的正向负载均衡器,因为我永远不会从nginx或者Apache负载均衡器获得此类证书。
据我了解,在Microsoft世界中,尤其是对于SSL,没有通用的(开源或者免费的)负载平衡解决方案。
我听说过简单的DNS平衡,其中我的域名将绑定到多台ISS服务器,并且每个新客户端(会话)将获得一台服务器的IP,这样我将获得简单的平衡和SSL支持。
现在,我只是在乞求部署,了解我们对这种平衡的观点,或者可能是得到一些建议,确实很有趣。
谢谢!
对于我来说,除了DNS平衡之外,我找不到HTTPS的其他解决方案。我别无选择。
???
解决方案
基于DNS的负载平衡将带我们走很长一段路。单击此处以获取有关该主题的文章。有关IIS / ASP世界中的负载平衡的概述,请转到此处。
Windows网络负载平衡可能是解决方案,在这里我们将找到很多有关它的信息。
我们使用Cisco Local Director,他们似乎处理得很好。
我尚未使用过用于负载平衡的纯软件解决方案,但平衡可能效果很好。我仅将其用于纯1:1端口转发。
使用平衡/ LD方法优于DNS平衡的优点是,我们可以轻松地使用它来将服务器带出池(用于升级,部署,调试等)。
根据预算中有多少钱,有很多解决方案。
我们可以在Windows Server上使用Windows网络负载平衡,而无需支付额外费用。设置相当简单,不会妨碍客户端证书。
Windows NLB绝对是解决方案,它位于每个IIS服务器的网络堆栈中,并在成员服务器之间分发TCP请求。 NLB与SSL通信一起使用,因为它通过TCP端口而不是通信内容进行分发。
我们将需要在每台服务器上安装相同的SSL证书,但除此之外,该配置很简单。
我已经在Linux上成功使用keepalived。这是一个管理http://linuxvirtualserver.org负载平衡器的简单工具,可以对负载平衡机和多台服务器进行故障转移。