处理 SSL 连接的最佳 Web 服务器是什么?我们的 80% 连接将采用 SSL,因此我们需要选择正确的 Web 服务器。我们倾向于使用 nginx,但不知道它如何处理 SSL。
答案1
影响 SSL 速度的因素有很多,从 SSL 库的选择(OpenSSL 与 GNUTLS)、算法的选择(RC4 与 AES 等)到所使用的 Web 服务器类型(Apache 与 NGINX 等)。
也就是说,你应该不要太担心当今的 SSL 性能。使用正确配置的 SSL 计算机,与非 SSL 连接相比,几乎没有额外开销。
来自 Google 的 Adam Langley发布之前的一些关于 SSL 调优的技巧以及他们转换到 SSL 的经验。我建议你读一下他的文章。
在我们的生产前端机器上,SSL/TLS 占 CPU 负载的不到 1%,每个连接占用的内存不到 10KB,网络开销不到 2%。
答案2
在 SSL 处理方面,Web 服务器之间没有太大区别,SSL 处理取决于 Web 服务器的 CPU 能力及其 RAM 大小以处理并发连接。
我建议您在 Web 服务器上使用 SSL 加速卡来更好地处理 SSL,您还可以使用单独的硬件 SSL 加速器设备进行 SSL 卸载,该设备充当 SSL 请求的负载平衡器或 SSL 终止器。
答案3
Reza 和 sybreon 都提出了一些关于 SSL 的好观点,确实,如果配置正确,好的 apache 和 nginx 会彼此接近地处理 SSL。同样重要的是要知道 SSL 卡会提高解密数据的 SSL 性能。
现在,如果您需要以低成本完成此操作,我建议使用 nginx 进行负载平衡,然后使用 apache 进行处理。我发现(我相信很多人会不同意我的观点)默认情况下,apache 比 nginx 更安全,如果您愿意使用 nignx 并真正限制可以调用的内容以及调用指向的位置,那么您可以像鼓一样紧密地使用 nginx,但如果您需要某些东西正常工作而不必担心它被黑客入侵,请快速坚持使用 apache。然后,我将在 ip_hash 模式下使用 nginx 负载平衡,这样请求就会发送到同一台服务器(除非发生服务器故障)因此,如果您收到大量请求,如果您认为您会失败,这应该能够帮助您解决您的 ssl 问题。
如果您想轻松了解如何设置 nginx 和负载平衡,请查看此处。
http://mickeyben.com/2009/12/30/using-nginx-as-a-load-balancer.html