什么是最好的Web服务器来处理SSL连接? 我们80%的连接都是SSL,所以我们需要select合适的networking服务器。 我们倾向于nginx,但不知道它如何处理SSL。
从selectSSL库(OpenSSL vs GNUTLS),selectalgorithm(RC4 vs AES等)到所使用的networking服务器types(Apache vs NGINX等),影响SSL速度的因素有很多。
也就是说,现在你不应该太在意 SSL的性能。 使用正确configuration的SSL机器,与非SSL连接相比,几乎没有额外的开销。
来自Google的Adam Langley 发布了一些关于SSL调优的技巧,以及他们转向SSL的经验。 我build议你阅读他的文章。
在我们的生产型前端机器上,SSL / TLS占用的CPU负载不到1%,每个连接的内存less于10KB,networking开销less于2%。
SSL处理中的Web服务器之间没有太大区别,SSL处理取决于Web服务器的CPU能力以及处理并发连接的RAM大小。
我build议您在您的Web服务器上使用SSL加速器卡以更好地处理SSL,还可以使用SSL卸载,并使用单独的硬件SSL加速器设备作为SSL请求的负载平衡器或SSL终止器。
Reza和sybreon都提出了一些有关SSL的好的观点,一个好的apache和nginx在正确configuration的时候会处理相互靠近的SSL。 了解SSL卡会影响数据解密的ssl性能也很重要。
现在,如果你需要廉价的做,我会推荐与nginx负载平衡,然后用Apache处理。 我发现(我相信很多人会不同意我),默认情况下,apache是比nginx更安全的,如果你愿意和nignx一起工作,真正限制什么可以调用,以及在哪里调用,那么你可以nginx好,像鼓一样紧,但如果你需要的东西工作,而不必担心被黑客快速坚持与Apache。 然后,我会使用nginx负载傍上ip_hash模式这种方式请求被发送到同一个服务器(除非服务器发生故障)所以,如果你得到了很多的请求,这应该能够帮助你解决你的SSL问题,如果你认为你会下降。
如果你想在这里设置nginx和负载平衡看起来很容易。
http://mickeyben.com/2009/12/30/using-nginx-as-a-load-balancer.html