NGINX 1.25 introduced support for http/3 (over QUIC).要启用它,可以添加
listen 443 quic reuseport;
到server
块,以及可能存在的
listen 443 ssl http2;
但是,如果我为多个服务器块添加quic
侦听(它们都有不同的server_name
集),那么NGINX会拒绝配置,并出现以下错误:
[emerg] 2611#2611: duplicate listen options for 0.0.0.0:443 in /etc/nginx/sites-enabled/site.conf
可以监听不同域的 * 不同 * 端口,但这似乎对用户不友好- Firefox将在url中显示端口号,即使它首先通过http/2加载页面,然后从Alt-Svc
头中获取http/3端口。手动分配端口和为此配置防火墙也很繁琐。
我所有的server
块都使用相同的证书。我拥有server
块的所有域都是单个证书中的主题替代名称。RFC 9114说http/3客户端必须支持服务器名称指示,但即使没有它,因为我所有的域都使用相同的证书,理论上应该可以建立连接,然后根据Host
报头决定提供什么内容。但是,当我通过QUIC发送请求时,NGINX从listen 443 quic
所在的server
块中提供服务,它似乎忽略了服务器名称。
NGINX 1.25是否可以在端口443上通过http/3服务多个域?
2条答案
按热度按时间mf98qq941#
是的,nginx可以在多个虚拟主机上提供http/3服务,但
reuseport
选项仅支持1个虚拟主机,每个listen IP:PORT
指令。因此,您应该为虚拟主机使用不同的IP或删除
reuseport
选项。yptwkmov2#
您应该只指定一次“reuseport”,nginx将为具有相同主机端口对的所有主机使用它。
不需要不同的IP。nginx文档