如何在nginx中禁用http2

Jan*_*män 5 safari nginx http2

由于这个 Safari问题与HTTP/2和表格POSTS我想通过HTTP/2禁用服务一个网页.所以我刚从相应的nginx服务器块中的server_name指令中删除了"http2".

server {
  listen x.x.x.x:443 ssl;
  server_name xxxx;
  [...]
}
Run Code Online (Sandbox Code Playgroud)

但是在我重新启动NginX并在各种浏览器中打开网站后,仍然使用HTTP/2协议......我做错了什么?

我的NginX版本是1.10.1

迎接Jan

Jan*_*män 15

有人在这里回答了正确的解决方案,但帖子消失了......

您必须为一个IP地址/端口上的所有服务器块禁用http2.如果有一个服务器块配置为启用http2,则会为此IP上的所有服务器块启用它.

  • 感谢您指出了这一点.我只是尝试了自己,你实际上必须在所有虚拟主机中禁用http2以禁用http2.这实际上很糟糕...... (5认同)

Ari*_*fal 6

NGINX 无法在 1 个端口上提供多种协议。使其成为不同的端口。示例:端口 443 上的 HTTP/2

server {
  listen x.x.x.x:443 ssl http2;
  server_name xxxx;
  [...]
}
Run Code Online (Sandbox Code Playgroud)

然后是端口 444 上的 HTTP 1.1

 server {
      listen x.x.x.x:444 ssl;
      server_name xxxx;
      [...]
    }
Run Code Online (Sandbox Code Playgroud)

或者如果你想禁用 http/2 模块,请重新安装 NGINX 而无需 --with-http_v2_module