nginx 与 nginx 通信使用 http2 没有 ssl

11 nginx http2

我有 nginx-proxy 和 nginx-server docker 容器。

client browser < > nginx-proxy 是 http2 和 443 通过 proxy_pass。

nginx-proxy < > nginx-server 是 http1,我想将它移动到 http2 但没有 SSL - 因为它们都在同一台服务器上,我看不到加密流量的好处。

我阅读了 nginx 文档,他们说它支持没有 ssl 的 http2。所以我80 http2;在 nginx-server vhost 中添加了 listen 指令。

但是,浏览器会下载包含以下内容的文件,而不是显示网站:

0000 1204 0000 0000 0000 0300 0000 8000
0400 0000 0000 0500 ffff ff00 0004 0800
0000 0000 7fff 0000 0000 0807 0000 0000
0000 0000 0000 0000 01
Run Code Online (Sandbox Code Playgroud)

它看起来非常像这个问题,但我的不是browser <> nginx问题而是nginx <> nginx问题。这不应该存在,因为文档说 nginx 支持没有 ssl 的 http2。

我如何让 nginx-proxy 理解后端 nginx-server 说 http2 ......我想这是问题,因为 hex dump 说:malformed packet.

这个问题表明这是不可能的,也不会实施。

Tim*_*Tim 4

这样做的好处将是微乎其微的,因为同一服务器上的软件之间的延迟非常低。鉴于这要么非常困难,要么不可能,我不会花你的时间在这上面。

  • 为什么不可能呢?大多数网络浏览器目前不支持没有 SSL 的 HTTP/2,但希望最终有些浏览器会支持,至少通过第三方插件是这样。没有 SSL 开销的 HTTP/2 速度作为一种选择是非常好的。 (3认同)