我有一个用Go编写的Web应用程序,并由HAProxy进行负载平衡。 HAProxy还处理SSL / TLS终止。目前响应都是HTTP / 1.1,我希望它们是HTTP / 2。我在haproxy.conf中尝试过各种各样的东西,但是还没有能够让它运转起来。
我能够获得一个独立的Go服务器来处理自己的SSL终端以使用HTTP / 2,但看起来所有当前浏览器都只支持HTTP / 2而不是TLS。这是否意味着我需要在Web应用程序本身处理SSL终止?或者是否有一些我不了解的解决方法,以便我可以继续在负载均衡器上终止SSL并仍然使用HTTP / 2?
看起来这是不可能的,但我希望有办法做到这一点,否则我需要在每个Web应用程序处理SSL证书,而不仅仅是在负载均衡器处。
答案 0 :(得分:3)
或者是否有一些我不了解的解决方法,以便我可以继续在负载均衡器处终止SSL并仍然使用HTTP / 2?
如果我找到了您,您需要一个支持HTTP / 2的负载均衡器,它可以将您的请求代理到您的应用程序。您可以使用nginx。它可以很好地做http2 termination,负载平衡和许多其他事情。所以你可能根本不需要haproxy。但是,如果您需要一些高级功能(如粘性会话),haproxy非常有用。 Nginx也可以这样做,但只能在商业版本中使用。
这是一篇文章(在Google缓存中)如何setup nginx + haproxy。