# the "listen ... http2" directive is deprecated, use the "http2" directive instead ## 错误提示 ``` [warn] 708259#708259: the "listen ... http2" directive is deprecated, use the "http2" directive instead in /etc/nginx/sites-enabled/turnipjuice.media:5 [warn] 708259#708259: the "listen ... http2" directive is deprecated, use the "http2" directive instead in /etc/nginx/sites-enabled/turnipjuice.media:6 ``` ## 原因 Nginx 1.25.1版本,根据其[变更集](https://hg.nginx.org/nginx/rev/08ef02ad5c54)说明,之前通过“listen … http2”启用HTTP/2的方式现已弃用。 ## 解决 ### 原配置 ``` listen 443 ssl http2; listen [::]:443 ssl http2; ``` ### 新配置 ``` listen 443 ssl; listen [::]:443 ssl; http2 on; ``` ## 豆包总结 本文主要围绕 Nginx 配置中 HTTP/2 指令在不同版本 Nginx 下的兼容性问题展开。自 Nginx 1.25.1 版本起,之前通过 “listen … http2” 启用 HTTP/2 的方法已被弃用。若在 1.25.1 及更高版本中使用旧方法,测试 Nginx 配置时会出现警告,如特定配置文件中相关行因含 http2 参数引发警告。新的实现方法允许在同一端口共享 HTTP/2 和 HTTP/0.9 - 1.1 ,需将 “listen 443 ssl http2;” 及 “listen [::]:443 ssl http2;” 修改为 “listen 443 ssl;”“listen [::]:443 ssl;” 以及 “http2 on;” ,修改后警告应会消失。对于 SpinupWP 服务器,目前建议继续使用已弃用的指令,避免使用新的 HTTP/2 指令实现方式,虽会触发 Nginx 警告,但能防止潜在的服务中断问题,例如新指令在旧版本 Nginx 服务器上无法被识别,导致服务器上所有站点瘫痪。SpinupWP 计划更新工具以根据 Nginx 版本自动更改 HTTP/2 指令,但目前尚未完成。 ### 重要亮点 - **旧 HTTP/2 指令的弃用**:从 Nginx 1.25.1 版本开始,以往通过 “listen … http2” 启用 HTTP/2 的方式已过时。若在 1.25.1 及更高版本的 Nginx 中使用此旧方式,在测试 Nginx 配置时会收到警告,像在 “/etc/nginx/sites - enabled/turnipjuice.media” 文件的相关行,因为包含 http2 参数,就会出现警告提示告知应使用新的 “http2” 指令替代。 - **新 HTTP/2 指令的实现**:Nginx 1.25.1 及更高版本对 HTTP/2 的配置实现有了改变,新方法允许在同一端口共享不同 HTTP 协议版本。具体操作是将原本的 “listen 443 ssl http2;” 和 “listen [::]:443 ssl http2;” 修改为 “listen 443 ssl;”“listen [::]:443 ssl;”,并新增 “http2 on;”,如此修改后,之前因使用旧指令产生的警告便会消失。 - **SpinupWP 服务器的处理建议**:在 SpinupWP 服务器上,当前建议继续使用已弃用的 HTTP/2 指令,即便这会触发 Nginx 警告。这是因为若使用新的指令实现方式,当站点克隆到运行旧版本 Nginx 的服务器时,服务器无法识别新指令,会导致该服务器上所有站点无法正常运行。虽然这并非理想解决方案,但目前为保持 SpinupWP 服务器间的兼容性,忽略警告使用旧实现方式是最安全的选择,SpinupWP 后续有计划更新工具以自动适配不同 Nginx 版本的 HTTP/2 指令。 ## 快照 - https://pic.rmb.bdstatic.com/bjh/3eec3da3a2b/250707/5273f985e04a3d5fc1ac7358de96471a.png - https://i3.wp.com/pic.rmb.bdstatic.com/bjh/3eec3da3a2b/250707/5273f985e04a3d5fc1ac7358de96471a.png - https://788910.xyz/api/snapshot?p=c562e3733cbd38ae9f98d25bd5e6f62a&u=https://pic.rmb.bdstatic.com/bjh/3eec3da3a2b/250707/5273f985e04a3d5fc1ac7358de96471a.png