我理解,在配置 HTTPS 负载均衡器时,SSL 终止通常更有利于提高速度,并能够检查数据并执行添加标头等操作,而 SSL 直通有利于提高安全性,但会消耗更多的处理能力。据我所知,在 SSL 终止期间,SSL 连接正如其名称所暗示的那样,终止当它到达负载均衡器时,通常从那里,负载均衡器和工作服务器通过纯 HTTP 进行通信。我目前的配置如下:
客户端 --https-->x[负载均衡器]--https-->[服务器]
在这里,SSL 连接在负载均衡器处终止,但从那里,负载均衡器与目标服务器启动新的 HTTPS 连接。
我的问题是哪种解决方案更快,SSL 直通还是 SSL 终止 + 额外的 HTTPS 连接?
注意:我使用的是 haproxy + 廉价的 100Mbps 虚拟专用服务器,每台服务器只有 1 个 vCore
答案1
永远不要假设哪一个更快。使用负载平衡器意味着将一些工作卸载到外部机器。这通常更快,因为它允许应用程序使用更多 CPU。但如果您的应用程序受磁盘限制或空闲,具有 SSL 卸载功能的现代 CPU(如乙炔) 可能比旧的负载均衡器更快。
建议始终使用特定的流量模式进行测试。在测试期间检查负载。问问自己,瓶颈在哪里?然后,如果您有时间和/或金钱,请进行优化。