2016-09-12 8 views
2

wegen this Safari Problem mit HTTP/2 und Form POSTS Ich wollte deaktivieren, eine Webseite über HTTP/2 zu bedienen. Also habe ich einfach den "http2" aus der Anweisung server_name im entsprechenden nginx Server Block entfernt.So deaktivieren Sie http2 in Nginx

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

Aber nachdem ich neu gestartet Nginx und öffnete die Webseite in verschiedenen Browsern die HTTP/2 Protokoll noch verwendet wird ... Was mache ich falsch?

Meine Nginx Version ist 1.10.1

Greets Jan

+0

Suchen Sie in anderen Serverblöcken nach "http2". –

+0

Es gibt andere Serverblöcke mit aktiviertem htt2. Kann ich es nicht nur für einen Serverblock deaktivieren? –

Antwort

6

Jemand mit der richtigen Lösung beantwortet hier, aber die Post verschwunden ...

Sie haben http2 auf für alle Server-Blöcke deaktivieren eine IP Adresse/Port. Wenn ein Serverblock zur Aktivierung von http2 konfiguriert ist, ist er für alle Serverblöcke auf dieser IP-Adresse aktiviert.

+2

Vielen Dank, dass Sie darauf hingewiesen haben. Ich habe gerade das selbst versucht, Sie müssen http2 in allen virtuellen Host deaktivieren, um http2 zu deaktivieren. Das ist wirklich scheiße ... – cwhsu

+0

Das hat mich schon eine Weile verrückt gemacht und ich habe das gesehen, nachdem ich es gelöst habe. – n3storm

0

NGINX kann mehrere Protokolle auf einem Port nicht bedienen. Machen Sie es anders Port. Beispiel: HTTP/2 auf Port 443

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

und dann HTTP 1.1 auf Port 444

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

oder wenn Sie wollen, deaktivieren Sie http/2-Modul, neu installieren NGINX ohne --with-http_v2_module