【发布时间】:2020-02-22 11:19:22
【问题描述】:
不确定是否可行,但如果你有一个用于 HTTP/1.1 连接的反向代理,如果目标能够提供服务,是否可以从反向代理升级到 HTTP/2 的连接HTTP/2?
如果有帮助,代理是用 go 编写的,它使用 reverseproxy 包。
【问题讨论】:
标签: go reverse-proxy http2
不确定是否可行,但如果你有一个用于 HTTP/1.1 连接的反向代理,如果目标能够提供服务,是否可以从反向代理升级到 HTTP/2 的连接HTTP/2?
如果有帮助,代理是用 go 编写的,它使用 reverseproxy 包。
【问题讨论】:
标签: go reverse-proxy http2
是的,完全有可能。
许多网络代理(大多数?)是 HTTP 代理(也称为 7 级代理)并且有两个独立的 HTTP 连接 - 一个用于传入“前端”,另一个用于传出“后端”。这两个连接可以有完全不同的设置——包括支持不同的 HTTP 版本。
其他代理是 TCP 代理(也称为 4 级代理),它们没有 HTTP 的概念,只是转发 TCP 数据包并假设其他人知道如何处理它们。在这种情况下是不可能的 拥有不同的 HTTP 版本。
也就是说,most of the benefit of HTTP/2 is for the front end connection 作为 HTTP/2 提高了 HTTP 对高延迟连接的性能影响。通常,后端连接通过更低延迟、更高带宽的连接(甚至可能在同一个数据中心)。因此,尽管您要问的问题完全有可能,但您是否要这样做更值得怀疑。可能正是因为这个值得商榷的好处,许多服务器实际上并不支持通过 HTTP/2 的后端连接。 Apache does but has it marked as experimental。 Nginx 没有和say they won’t。我不熟悉 Go but looks like it might support this。
【讨论】: