ssl - 在 Go 中使用 SSL 终止和 HTTP/2 的 HAProxy

标签 ssl go haproxy http2

我有一个用 Go 编写并由 HAProxy 进行负载平衡的 Web 应用程序。 HAProxy 还处理 SSL/TLS 终止。目前响​​应都是 HTTP/1.1,我希望它们是 HTTP/2。我在 haproxy.conf 中尝试了各种方法,但一直无法正常工作。

我能够获得一个独立的 Go 服务器来处理它自己的 SSL 终止以使用 HTTP/2,但看起来所有当前的浏览器都只支持基于 TLS 的 HTTP/2。这是否意味着我需要在 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 .它可以做得很好http2 termination ,负载平衡和许多其他事情。所以你可能根本不需要 haproxy。但是,如果您想要一些高级功能(如粘性 session ),haproxy 会很有用。 Nginx 也可以,但仅限于商业版本。

这是一篇文章(在 Google 缓存中)如何 setup nginx + haproxy .

关于ssl - 在 Go 中使用 SSL 终止和 HTTP/2 的 HAProxy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42262696/

相关文章:

regex - 将特定的返回查询转换为 mgo

html 电子邮件正文中的 gomail.v2 quoted-printable 编码问题

go - 从 postman 检查时获取 404 页面未找到错误

ssl - 使用 HAProxy 的服务器之间的反向连接

http - 如何在不将请求传递给 Web 服务器的情况下使用 HAProxy 发送响应

node.js - 使用 NodeJS+express 在 Cloud Foundry 应用程序中进行相互身份验证

ssl - Comodo 通配符 ssl 证书和 Haproxy

kubernetes - HAProxy 2.0.2不会为服务中的所有Pod创建 'srv'

ssl - OpenSSL X509 使用 CA 验证签名

apache - 在整个网站上启用 www + HTTPS