我一直在尝试在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?1.任何帮助都非常感谢
我试图从nginx建立到上游服务器的http2连接。我希望nginx与上游服务器协商http2
1条答案
按热度按时间ac1kyiln1#
NGINX不支持“HTTP/2到后端”。这一点从文件中可以明显看出。后端的最大HTTP版本是1.1。
实际上,增加这样的支持没有什么意义。HTTP/2的主要特性是请求多路复用。当你处理HTTP缓存时,前端NGINX会将 * 一个请求 * 路由到后端的一个匹配位置。因此,当我们谈论HTTP拦截时,这个级别在HTTP级别上进行流量检查,以便检查头部,URI以适当地路由请求。因此,它总是关于检查单个请求并将其路由到某个地方,多路复用在这里几乎不适用。
即使你要切换到上面的一层,也就是TCP(因此,NGINX的
stream
模块),NGINX也不支持它。NGINX的流模块无法协商ALPN协议。(reference)