Debian Bookworm 上的 Nginx 1.26.0。它可以很好地提供 HTTP3,这在 3 个不同浏览器的开发工具选项卡中的网络协议列中得到了确认。但是,如果我关闭 HTTP2,它只会提供 HTTP3。如果我添加http2 on;
到任何虚拟主机,则我的任何浏览器都不会提供 HTTP3 - 所有内容都以 HTTP2 的形式提供。
我的三个虚拟主机server {}
设置的相关配置部分如下:
# http3 (on by default)
listen 443 quic;
listen [::]:443 quic;
add_header Alt-Svc 'h3=":443"; ma=86400';
http2 on;
listen 443 ssl;
listen [::]:443 ssl;
Alt-Svc 标头已成功添加到所有提供的资源。但似乎我必须关闭 HTTP2 才能让 HTTP3 正常工作?对吗?如果 HTTP3 协商失败或因任何原因(例如中间件阻塞、旧 UA 等)无法接受,我希望 HTTP2 成为后备。这可能吗?或者如果 HTTP3 因任何原因无法提供服务,我必须接受 1.1 作为后备吗?