2016-06-11 5 views
2

Ich bin ein Neuling in Nginx (in der Vergangenheit mit Apache).Safari gibt keine Antwort bei Verwendung von HTTP/2

Im Moment versuche ich einen Cache zu erstellen, der ein Apache Backend startet, letztendlich denke ich (basierend auf meiner bisherigen, guten Erfahrung mit nginx), dass wir einfach nginx verwenden werden.

Sobald ich http2 Safari einschalten kann keine Antwort erhalten. Im Fehlerprotokoll gibt es nichts, was auf ein Problem hinweist, und wenn ich das Zugriffsprotokoll einschalte und dort nachschaue, kann ich sehen, dass der Safari-Client viele, viele Verbindungen macht, als würde er die Seite nur aktualisieren.

Ich habe zahlreiche Nginx-Versionen ausprobiert, da ich festgestellt habe, dass es möglicherweise ein Problem mit dem neuesten stabilen gibt. Also habe ich versucht, auf 1.9.14 herunterzuspielen und auf 1.11.1 zu upgraden. Kein Glück.

Nginx mit gerade kompiliert haben:

./configure --with-http_ssl_module --with-http_v2_module

Nginx -V Ausgang:

nginx version: nginx/1.11.1 
built by gcc 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2.1) 
built with OpenSSL 1.0.2g-fips 1 Mar 2016 
TLS SNI support enabled 
configure arguments: --with-http_ssl_module --with-http_v2_module 

Meine Config sieht wie folgt aus (meine sites-available conf):

upstream backend { 
    server 127.0.0.1:8088 weight=100; 
} 

server { 
    listen 443 ssl http2 deferred; 
    server_name www.server.name; 

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK"; 
    ssl_prefer_server_ciphers on; 

    ssl_certificate /path/to/cert.crt 
    ssl_certificate_key /path/to/cert_key.key 

    ssl_session_cache shared:SSL:10m; 
    ssl_session_timeout 10m; 

    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;"; 

    location/{ 
      proxy_redirect off; 
      proxy_set_header Host $host; 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarded_For $proxy_add_x_forwarded_for; 

      proxy_pass https://backend; 
    } 

} 

Wenn ich http2 aus dem Listen Argument entfernen und neu starten funktioniert es gut ...

Ich habe gesucht, um herauszufinden, ob ich etwas falsch in meiner Konfiguration mache, aber ich kann nichts finden ... Allerdings, wenn es einige Verbesserungen zu meiner Konfiguration geben Sie mich bitte wissen. Das Hauptproblem ist jedoch, dass immer wenn ich eine URL (gecached oder nicht) mit Safari anklicke, diese einfach weiter lädt. Diese

ist, wie mein Zugriffsprotokoll wie nach einer Anfrage aussieht:

123.123.123.123 - - [11/Jun/2016:08:37:28 +0200] "GET /example/url HTTP/2.0" 200 15032 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/601.5.17 (KHTML, like Gecko) Version/9.1 Safari/601.5.17" 
123.123.123.123 - - [11/Jun/2016:08:37:28 +0200] "GET /example/url HTTP/2.0" 200 15032 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/601.5.17 (KHTML, like Gecko) Version/9.1 Safari/601.5.17" 
123.123.123.123 - - [11/Jun/2016:08:37:28 +0200] "GET /example/url HTTP/2.0" 200 15032 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/601.5.17 (KHTML, like Gecko) Version/9.1 Safari/601.5.17" 
123.123.123.123 - - [11/Jun/2016:08:37:28 +0200] "GET /example/url HTTP/2.0" 200 15032 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/601.5.17 (KHTML, like Gecko) Version/9.1 Safari/601.5.17" 
123.123.123.123 - - [11/Jun/2016:08:37:28 +0200] "GET /example/url HTTP/2.0" 200 15032 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/601.5.17 (KHTML, like Gecko) Version/9.1 Safari/601.5.17" 
123.123.123.123 - - [11/Jun/2016:08:37:28 +0200] "GET /example/url HTTP/2.0" 200 15032 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/601.5.17 (KHTML, like Gecko) Version/9.1 Safari/601.5.17" 
123.123.123.123 - - [11/Jun/2016:08:37:28 +0200] "GET /example/url HTTP/2.0" 200 15032 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/601.5.17 (KHTML, like Gecko) Version/9.1 Safari/601.5.17" 

Dank!

+1

Safari-Version? OS? Überprüfen Sie http://caniuse.com/#feat=http2 – Rahul

+0

Sorry für langsame respons. Safari Version 9 läuft auf Yosemite. Ich habe kein Problem, die HTTP2 Respons mit dem gleichen Browser und mit Apache zu bekommen. Also, ich erkläre, dass etwas mit meiner nginx-Konfiguration nicht stimmt. – Jesperhag

Antwort

Verwandte Themen