listen 443 ssl
: Lässt nginx alle IPv4-Adressen auf dem Server an Port 443 abhören ( 0.0.0.0:443
)
während
listen [::]:443 ssl
: Lässt nginx alle IPv6-Adressen auf dem Server an Port 443 abhören ( :::443
)
[::]:443
Nginx reagiert standardmäßig nicht auf IPv4, es sei denn, Sie geben den folgenden Parameter an ipv6only=off
:
listen [::]:443 ipv6only=off;
Gemäß dem Dokument: http://nginx.org/en/docs/http/ngx_http_core_module.html#listen
ssl:
Mit dem Parameter ssl (0.7.14) können Sie festlegen, dass alle an diesem Port akzeptierten Verbindungen im SSL-Modus funktionieren sollen.
http2:
Der Parameter http2 (1.9.5) konfiguriert den Port so, dass HTTP / 2- Verbindungen akzeptiert werden .
Dies bedeutet nicht, dass nur HTTP / 2-Verbindungen akzeptiert werden.
Gemäß RFC7540
Ein Client, der ohne vorherige Kenntnis der Unterstützung von HTTP / 2 im nächsten Hop eine Anforderung für einen "http" -URI anfordert, verwendet den HTTP-Upgrade-Mechanismus. Der Client stellt dazu eine HTTP / 1.1-Anforderung, die ein Upgrade-Headerfeld mit dem Token "h2c" enthält.
Ein Server, der HTTP / 2 nicht unterstützt, kann auf die Anforderung antworten, als ob das Feld Upgrade-Header nicht vorhanden wäre.
HTTP/1.1 200 OK
Content-Length: 243
Content-Type: text/html
Ein Server, der HTTP / 2 unterstützt, akzeptiert das Upgrade mit einer Antwort von 101 (Switching Protocols). Nach der leeren Zeile, die die 101-Antwort beendet, kann der Server mit dem Senden von HTTP / 2-Frames beginnen.
Zusammenfassen :
Ein Client, der HTTP / 2 nicht unterstützt, wird den Server niemals nach einem Upgrade der HTTP / 2-Kommunikation fragen: Die Kommunikation zwischen ihnen erfolgt vollständig über HTTP1 / 1.
Ein Client, der HTTP / 2 unterstützt, fordert den Server (unter Verwendung von HTTP1 / 1) auf, ein HTTP / 2-Upgrade durchzuführen:
- Wenn der Server HTTP / 2-fähig ist, bemerkt der Server den Client als solchen: Die Kommunikation zwischen ihnen wird auf HTTP / 2 umgeschaltet.
- Wenn der Server nicht HTTP / 2-fähig ist, ignoriert der Server die Upgrade-Anforderung, die mit HTTP1 / 1 beantwortet wird: Die Kommunikation zwischen ihnen sollte ausreichend HTTP1 / 1 bleiben.
Vielleicht hier mehr zusammengefasst: http://qnimate.com/http2-compatibility-with-old-browsers-and-servers/
Das Nginx-Dokument gibt jedoch Folgendes zu HTTP / 2 über TLS an:
Beachten Sie, dass für das Akzeptieren von HTTP / 2-Verbindungen über TLS die TLPN-Erweiterungsunterstützung „Application-Layer Protocol Negotiation“ (ALPN) erforderlich ist, die erst seit OpenSSL Version 1.0.2 verfügbar ist.
Stellen Sie sicher, dass alte Kunden diese Anforderung erfüllen.