当两个 nginx 进行通信时,http2 有什么好处吗?

当两个 nginx 进行通信时,http2 有什么好处吗?

我正在运行 nginx-proxy(jwilder)和 nginx-webserver(供应商 nginx 容器)的 docker 镜像。

nginx-proxy 位于 nginx-webserver 前面。

nginx-proxy 支持 http2,并且默认启用。我可以在 chrome dev tools 中看到我的所有内容都是通过 h2 协议下载的。

但是我的后端(nginx-vendor)配置为使用端口 80 和 http1.1。

现在我的问题有两个:

  1. 我了解 http2 对于浏览器/服务器通信的好处。但是在两个 nginx 服务器之间运行 http2 是否有相同的好处?
  2. 我如何测试第二个 nginx 是否使用 http2?

答案1

  1. 这取决于每次页面加载时从第二台服务器加载多少不同的资源。如果每次页面加载时同时加载多个资源,那么就有好处。

  2. 通过查看access.log第二个 nginx 服务器上的文件,并查看资源访问上指示的协议。

答案2

发现了这个:https://trac.nginx.org/nginx/ticket/923

在可预见的未来,没有计划在代理模块中实现 HTTP/2 支持

票证中引用的一封邮件摘录:

几乎没有任何意义去实现它,因为 HTTP/2 的主要优点是它允许在单个连接中多路复用多个请求,从而 [几乎] 消除了同时请求数量的限制 - 并且在与您自己的后端通信时没有这样的限制。此外,当使用 HTTP/2 连接后端时,情况甚至可能变得更糟,因为使用的是单个 TCP 连接而不是多个连接。

相关内容