我有兴趣在下面引用的文章中构build这个架构。
我目前有一个价格适中的第4层负载平衡器,我的应用程序服务器是SSL端点。 我想在我的负载平衡器和我的应用程序服务器之间放置一个SSL服务器场。 然后,我将在SSL场和我的应用程序服务器之间放置另一个廉价的负载平衡器,以执行第7层路由。

我的Web应用程序有相当高的消费者stream量,6台服务器可以处理大约50%的容量。 另外,我的基础设施stream量比我的消费者stream量还要高出几个数量级。 这是来自世界各地的数据,必须实时与我的networking应用程序集成。 总共我有18个应用程序服务器来处理所有的stream量,再加上6个数据库服务器。 我将在接下来的2周内再添加6个应用程序服务器,在此之后的2周内再增加6个应用程序服务器。 保守地说,我估计到今年年底,我需要扩展到120台服务器。
我现在的动机是将消费者stream量与基础设施stream量分开。 消费者stream量的优先级高于基础设施stream量,我不能让基础设施方面的踩踏力量取消我的面向消费者的服务器。 有一个永远在线的网站是重中之重。 但是,如果某个客户端应用程序服务器出现故障,则需要将该通信路由到指定用于基础设施通信的服务器。
复杂的是,所有的stream量都使用相同的主机名来解决,并且几乎是100%https。 在我的情况下区分基础设施和消费者stream量的唯一方法是通过URL(我inheritance的差的体系结构),所以我需要一个第7层负载均衡器能够路由。 但是,为了工作,我需要一个花哨的基于硬件的SSL终止符或SSL服务器场,如上所述。 因为我的用户基础正在快速扩展,所以我担心如果我走下硬件path,它将变得非常快,特别是因为我需要4个高可用性(2个设施中的2个相同的设置)。 同时,上面的图表看起来非常灵活,可以横向扩展。
有没有人build立过这个? 是否有预build的configuration? 我应该做什么考虑和我应该使用什么软件(我听说有人用mod-ssl,nginx和stunnel使用apache)? 另外,什么时候购买昂贵的负载均衡器vs构buildSSL服务器场是否合理?
http://1wt.eu/articles/2006_lb/index_05.html
对于120服务器群集, 请咨询专业人员 。 我不会想到你会为你的应用程序得到足够详细的答案。
我们设置的最复杂的集群configuration只有20台服务器,其中只有12%是HTTPSstream量(14Mbit纯SSL)。
我们典型的build筑是…
如果有帮助,对于Web群集,我们通常使用:
lvs (initial ssl load balancing) -> pound (ssl-unwrapping) -> varnish (caching) -> haproxy (load balancing) -> nginx (static content) -> php (dynamic content) -> mysql (db)
我们曾经用过HAProxy (代替Pound)的HAProxy ,但是它造成了一些复杂性(无法设置标题)。
磅
我们使用它,它工作的非常好,以至于我们无法将它推到我们所拥有的硬件和testing期间通过Apache jMeter推送stream量的限制上。
pound的主页上还有关于性能改进的说明
如果PCRE,tcmalloc(来自Google perftools包)和/或Hoard可用,Pound将会与他们链接。 这将提供显着的性能提升,并强烈build议。
但pound被认为对“低”交通应用是有利的,但似乎并不像其他竞争对手那样大,其他人在基准testing中也有logging
软件SSL终结者基准
CPU使用率可能是关键问题
CPU消耗将成为你最大的问题,所以聪明的SSL密钥大小将会有所帮助,1024位(现在被大多数SSL权威人士弃用)与2048位对比3072位密钥将会线性增加开销。
以下是关于一般SSL性能的一些很好的解读, http://www.imperialviolet.org/2010/06/25/overclocking-ssl.html
你最终在这里find的是没有“正确的”答案,只有再次testing,再testing,再testing一下,才能在你的场景中find最好的解决scheme。
您可以使用Linux防火墙将消费者stream量的基础设施拆分。 使用netfilter / iptablesstring匹配function,您可以匹配基于url的stream量。 stream量匹配后,您可以使用它来执行QoS或转发stream量不同。