具有 SSL 终止和 HTTP/2 在 Go 中的 HAProxy
HAProxy with SSL Termination and HTTP/2 in Go
我有一个用 Go 编写并由 HAProxy 进行负载平衡的 Web 应用程序。 HAProxy 还处理 SSL/TLS 终止。目前的回复都是 HTTP/1.1,我希望它们是 HTTP/2。我在 haproxy.conf 中尝试了各种方法,但一直无法正常工作。
我可以得到一个独立的 Go 服务器来处理它自己的 SSL 终止以使用 HTTP/2,但看起来所有当前的浏览器都只支持 HTTP/2 over TLS。这是否意味着我需要在 Web 应用程序本身处理 SSL 终止?或者是否有一些我不知道的解决方法,以便我可以继续在负载平衡器处终止 SSL 并仍然使用 HTTP/2?
看起来这是不可能的,但我希望有办法做到这一点,否则我需要在每个 Web 应用程序上处理 SSL 证书,而不仅仅是在负载均衡器上。
Or is there some workaround that I don't know about so that I can continue terminating SSL at the load balancer and still use HTTP/2?
如果我没看错,您需要一个 HTTP/2 感知负载均衡器,它可以将您的请求代理到您的应用程序。您可以使用 nginx. It can excellent do http2 termination、负载平衡和许多其他东西。所以你可能根本不需要 haproxy。但是,如果您想要一些高级功能(如粘性会话),haproxy 会很有用。 Nginx 也可以,但仅限于商业版。
这是一篇文章(在 Google 缓存中)如何 setup nginx + haproxy。
我有一个用 Go 编写并由 HAProxy 进行负载平衡的 Web 应用程序。 HAProxy 还处理 SSL/TLS 终止。目前的回复都是 HTTP/1.1,我希望它们是 HTTP/2。我在 haproxy.conf 中尝试了各种方法,但一直无法正常工作。
我可以得到一个独立的 Go 服务器来处理它自己的 SSL 终止以使用 HTTP/2,但看起来所有当前的浏览器都只支持 HTTP/2 over TLS。这是否意味着我需要在 Web 应用程序本身处理 SSL 终止?或者是否有一些我不知道的解决方法,以便我可以继续在负载平衡器处终止 SSL 并仍然使用 HTTP/2?
看起来这是不可能的,但我希望有办法做到这一点,否则我需要在每个 Web 应用程序上处理 SSL 证书,而不仅仅是在负载均衡器上。
Or is there some workaround that I don't know about so that I can continue terminating SSL at the load balancer and still use HTTP/2?
如果我没看错,您需要一个 HTTP/2 感知负载均衡器,它可以将您的请求代理到您的应用程序。您可以使用 nginx. It can excellent do http2 termination、负载平衡和许多其他东西。所以你可能根本不需要 haproxy。但是,如果您想要一些高级功能(如粘性会话),haproxy 会很有用。 Nginx 也可以,但仅限于商业版。
这是一篇文章(在 Google 缓存中)如何 setup nginx + haproxy。