listen 443 ssl
: faz o nginx escutar em todos os endereços ipv4 no servidor, na porta 443 ( 0.0.0.0:443
)
enquanto
listen [::]:443 ssl
: faz o nginx escutar em todos os endereços ipv6 no servidor, na porta 443 ( :::443
)
[::]:443
não fará o nginx responder no ipv4 por padrão, a menos que você especifique o parâmetro ipv6only=off
:
listen [::]:443 ipv6only=off;
De acordo com o documento: link
ssl:
The ssl parameter (0.7.14) allows specifying that all connections accepted on this port should work in SSL mode.
link
The http2 parameter (1.9.5) configures the port to accept HTTP/2 connections.
Isso não significa que ele aceita apenas conexões HTTP / 2.
De acordo com RFC7540
A client that makes a request for an "http" URI without prior knowledge about support for HTTP/2 on the next hop uses the HTTP Upgrade mechanism. The client does so by making an HTTP/1.1 request that includes an Upgrade header field with the "h2c" token.
A server that does not support HTTP/2 can respond to the request as though the Upgrade header field were absent.
HTTP/1.1 200 OK Content-Length: 243 Content-Type: text/html
A server that supports HTTP/2 accepts the upgrade with a 101 (Switching Protocols) response. After the empty line that terminates the 101 response, the server can begin sending HTTP/2 frames.
Para resumir:
Um cliente que não suporta HTTP / 2 nunca pedirá ao servidor por um Atualização de comunicação HTTP / 2: a comunicação entre eles será totalmente HTTP1 / 1.
Um cliente que suporta HTTP / 2 perguntará ao servidor (usando HTTP1 / 1) por uma atualização HTTP / 2:
- Se o servidor estiver pronto para HTTP / 2, o servidor notará o cliente assim: a comunicação entre eles será alterada para HTTP / 2.
- Se o servidor não estiver pronto para HTTP / 2, o servidor ignorará o solicitação de atualização respondendo com HTTP1 / 1: a comunicação entre eles devem ficar bastante HTTP1 / 1.
Talvez mais resumido aqui: link
No entanto, o documento nginx afirma o seguinte sobre HTTP / 2 sobre TLS:
Note that accepting HTTP/2 connections over TLS requires the “Application-Layer Protocol Negotiation” (ALPN) TLS extension support, which is available only since OpenSSL version 1.0.2.
Certifique-se de que os clientes antigos estão em conformidade com este requisito.