如何在nginx中禁用http2

时间:2016-09-12 14:45:19

标签: nginx safari http2

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

server {
  listen x.x.x.x:443 ssl;
  server_name xxxx;
  [...]
}

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

我的NginX版本是1.10.1

Greets Jan

2 个答案:

答案 0 :(得分:12)

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

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

答案 1 :(得分:0)

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

server {
  listen x.x.x.x:443 ssl http2;
  server_name xxxx;
  [...]
}

然后在端口444上使用HTTP 1.1

 server {
      listen x.x.x.x:444 ssl;
      server_name xxxx;
      [...]
    }

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