nginx 是否支持上游服务器上的 http2?

问题描述 投票:0回答:1

我一直在尝试在nginx中配置http2。我正在尝试将 nginx 配置为反向代理。我在前端发送 http2 到 nginx 服务器,它似乎工作正常,但是当请求代理到上游服务器时,nginx 在 TLS 握手期间不会添加 alpn 扩展

这是我的代理配置

     location / {
             proxy_pass https://example.com/;
             proxy_ssl_certificate    "path_to_certificate";
             proxy_ssl_certificate_key     "path_to_key";
             proxy_ssl_protocols           TLSv1 TLSv1.1 TLSv1.2;
             proxy_ssl_ciphers             HIGH:!aNULL:!MD5;
             proxy_ssl_verify off;
    }

所以我想知道nginx在后端(上游服务器)是否支持http2?如果是,它支持哪个版本的 nginx?非常感谢任何帮助

我试图从 nginx 建立到上游服务器的 http2 连接。我希望 nginx 能够与上游服务器协商 http2

nginx nginx-reverse-proxy nginx-config http2
1个回答
0
投票

NGINX 不支持“HTTP/2 到后端”。这从文档中可以明显看出。后端的最高 HTTP 版本为 1.1。

添加这样的支持实际上没有什么意义。 HTTP/2 的主要特性是请求复用。当您处理 HTTP 代理时,前端 NGINX 将“请求”路由到后端中的匹配位置。因此,当我们谈论 HTTP 代理时,此级别会在 HTTP 级别上进行流量检查,以便检查标头、URI 以适当地路由请求。因此,它总是关于检查单个请求并将其路由到某个地方,多路复用在这里几乎不适用。 即使你要切换到上面的一层,即 TCP(因此,NGINX 的

stream

模块),NGINX 也不支持这一点。 NGINX的流模块无法协商ALPN协议。 (

参考

© www.soinside.com 2019 - 2024. All rights reserved.