我一直在尝试在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 不支持“HTTP/2 到后端”。这从文档中可以明显看出。后端的最高 HTTP 版本为 1.1。
添加这样的支持实际上没有什么意义。 HTTP/2 的主要特性是请求复用。当您处理 HTTP 代理时,前端 NGINX 将“请求”路由到后端中的匹配位置。因此,当我们谈论 HTTP 代理时,此级别会在 HTTP 级别上进行流量检查,以便检查标头、URI 以适当地路由请求。因此,它总是关于检查单个请求并将其路由到某个地方,多路复用在这里几乎不适用。 即使你要切换到上面的一层,即 TCP(因此,NGINX 的
stream
模块),NGINX 也不支持这一点。 NGINX的流模块无法协商ALPN协议。 (
参考)