Jan Tchärmän
Jan Tchärmän

Reputation: 965

How to disable http2 in nginx

due to this Safari Issue with HTTP/2 and Form POSTS I wanted to disable serving one Webpage via HTTP/2. So I just removed the "http2" from the server_name directive in corresponding nginx server block.

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

But after I restarted NginX and opened the website in various browsers the HTTP/2 Protocol is still used... What am I doing wrong?

My NginX version is 1.10.1

Greets Jan

Upvotes: 13

Views: 26794

Answers (2)

Ariq Naufal
Ariq Naufal

Reputation: 111

NGINX can't serve multiple protocol on 1 port. Make it different port. Example : HTTP/2 on port 443

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

and then HTTP 1.1 on port 444

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

or if you wanna disable http/2 module, re-install NGINX without --with-http_v2_module

Upvotes: 6

Jan Tchärmän
Jan Tchärmän

Reputation: 965

Someone answered with the correct solution here, but the post disappeared...

You have to disable http2 for all server blocks on one IP Adress / Port. If there is one server block configured to enable http2 it is enabled for all server blocks on this IP.

Upvotes: 26

Related Questions