NGINX 不支持HTTP/2 到后端,这从官方文档中可以看出,支持后端的最高 HTTP 版本为 v1.1。
其实添加此类支持实际上没有什么意义,因为HTTP/2 的主要功能是请求多路复用。
可当NGINX处理 HTTP 代理时,前端 NGINX 会将请求路由到后端的匹配位置(因为NGINX总是检查单个请求并将其路由到某个地方),即此级会在 HTTP 级别进行流量检查,以便检查标头、URI 以适当地路由请求,从而导致HTTP2多路复特性丢失。
不过Nginx 代理模块目前虽然不支持 HTTP/2(即它无法使用 http2 与后端通信),但它自己的监听器确是可以使用 http2--->这样正是大家容易搞混淆的地方。
server {
http2 on; # 自己本身支持http2
location / {
proxy_http_version 2; # 但是代理却不支持,如此写2会报错,最多只能写1.1
}
}
综上,大家还是带端口号访问自己原生HTTP2服务吧,要是觉得不好看,就把433端口给它!
标签:HTTP,nginx,代理,支持,NGINX,http2,路由 From: https://www.cnblogs.com/dingshaohua/p/18391097