我想在我的 TCP 服务前设置一个 SSL 终止器/负载均衡器,我考虑过
1)Stunnel(奇怪的性能问题,我使用 no-libwrap 和 pthreads 编译了它,但对于我的大多数客户端来说仍然很慢)
2)Nginx(我不需要 HTTP 绑定/处理东西)
3)HAProxy(无 SSL 终止)
那么,还有其他解决方案吗?
答案1
Pound SSL 是一个很好的解决方案:http://www.apsis.ch/pound/
请注意主页上关于 Google perftools 套件中 PRCE 和 tcmalloc 可用性的评论提高性能。
虽然 Pound 是反向代理,并且具有负载平衡等其他功能,但这些功能并不是必需的。您可以根据需要使用它来解密 SSL 并转发到本地 Web 服务器。
答案2
Stunnel 将是您的正确选择。您可以将 HAProxy 从列表中删除,因为它不支持 SSL。
您可以将 stunnel 与第 4 层负载均衡器(如 LVS)一起使用,以满足负载均衡需求。
答案3
自 2014 年 6 月起,HAProxy 为 SSL 1.5.x 及以上版本提供原生支持。
SSL 终止有相当多的选项:Stunnel、Stud、Pound、NGINX 和 HAProxy。 (如有其他合适的建议请添加评论)
虽然有支持,但可用的功能差别很大。我在网上找不到功能列表或比较。
使用 NGINX 进行 SSL 终止提供了与 SSL 配置相关的良好配置选项。请参阅http://nginx.com/resources/admin-guide/nginx-ssl-termination/。
HAProxy 更适合更强大的设置,需要可靠的负载平衡。请参阅https://serversforhackers.com/haproxy-ssl-termation-pass-through/&http://blog.haproxy.com/2012/09/10/how-to-get-ssl-with-haproxy-getting-rid-of-stunnel-stud-nginx-or-pound/。