Dea*_*ler 4 http2 google-cloud-run
我可以让 Google 在云运行中向我的服务器发送 http/2 请求吗?
我不确定谷歌如何知道我的服务器支持它,因为谷歌终止负载均衡器上的 SSL 并将 http 发送到云运行中的无状态服务器。
如果可能的话,我正在考虑从 webpieces 中获取一些内容,并为我“知道”只会执行 http/2 的微服务创建一个没有 http1.1 的纯 http/2 服务器。
另外,如果我有一个纯 http/2 服务器,是否有一种方法可以让 google 在需要时将 http1 请求转换为 http/2,以便我也可以托管网站?
我能找到的唯一信息是一个很棒的常见问题解答,它似乎缺少它是否在服务器端(而不是客户端)支持 http/2...
https://github.com/ahmetb/cloud-run-faq
谢谢,迪恩
Cloud Run 容器合同要求您的应用程序在未加密的HTTP 端点上提供服务。但是,这可以是 HTTP/1 或 HTTP/2。
如今,gRPC 应用程序在 Cloud Run 上运行,并且 gRPC 实际上使用 HTTP/2 作为其传输。这是可行的,因为 gRPC 服务器(除非配置了 TLS 证书)使用H2C(HTTP/2 未加密的明文)协议。
因此,如果您的应用程序实际上可以使用h2c协议提供未加密的流量,则 Cloud Run 负载均衡器 <=> 您的应用程序之间的流量可以是 HTTP/2,而无需降级到 HTTP/1。
例如,在Go中,您可以使用https://godoc.org/golang.org/x/net/http2/h2c包来自动检测和升级http2连接。
要测试您的应用程序是否正确实现了 h2c,您需要在本地运行:
curl -v --http2-prior-knowledge http://localhost:8080
Run Code Online (Sandbox Code Playgroud)
并查看< HTTP/2 200回复。
(我会确保将其添加到常见问题解答存储库中。)
| 归档时间: |
|
| 查看次数: |
2976 次 |
| 最近记录: |