当前位置:web 服务器 > Nginx >>

the listen ... http2 directive is deprecated, use the http2 directive instead in

在 nginx 遇到错误 [warn] the "listen ... http2" directive is deprecated, use the "http2" directive instead


在 1.25.1 版本后的 nginx 运行日志中,可能会发现以下警告信息:
nginx: [warn] the "listen ... http2" directive is deprecated, use the "http2" directive instead in etc/nginx/nginx.conf :15
原配置:

listen 443 ssl http2;

修改配置为:

listen 443 ssl;
http2 on;

重启 nginx 即可
Nginx在1.25.0版本中实验性的支持HTTP/3后,在1.25.1版本中弃用了listen指令的http2参数,单独加入了http2指令。

the “listen … http2” directive is deprecated异常
如果Nginx1.25.1及以后版本中,进行如下方式的配置:

listen 443 ssl http2;
listen [::]:443 ssl http2;

当执行nginx -t进行检查配置或重启Nginx时,会提示如下错误:

 [warn] : the "listen ... http2" directive is deprecated, use the "http2" directive instead in /etc/nginx/conf.d/s.conf:12
 
nginx: [warn] the "listen ... http2" directive is deprecated, use the "http2" directive instead in /etc/nginx/conf.d/s.conf:12

主要原因就是在Nginx的配置文件中采用了上述旧的语法格式导致的。

此时,将对应的配置修改为如下方式即可:

listen       443 ssl;
listen       [::]:443 ssl;

同时,如果配置了ssl on,需要去掉ssl on配置。

修改完毕,重启Nginx即可生效。

Nginx 1.25.1更新日志
Nginx 1.25.1版本,做了如下的更新:

Feature: “http2” 指令支持在每个服务器上启用 HTTP/2,“listen” 指令的 “http2” 参数已被弃用
Change: 移除 HTTP/2 服务器推送支持
Change: 不再支持被弃用的 “ssl” 指令
Bugfix: 修复使用 OpenSSL 时在 HTTP/3 出现的错误
Apache
IIS
Nginx
Tomcat
如果你遇到web 服务器难题:
访问www.zzzyk.com 试试
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,