listen 443 ssl
: membuat nginx mendengarkan semua alamat ipv4 di server, pada port 443 ( 0.0.0.0:443
)
sementara
listen [::]:443 ssl
: membuat nginx mendengarkan semua alamat ipv6 di server, pada port 443 ( :::443
)
[::]:443
tidak akan membuat nginx merespons pada ipv4 secara default, kecuali jika Anda menentukan parameter ipv6only=off
:
listen [::]:443 ipv6only=off;
Sesuai dokumen: http://nginx.org/en/docs/http/ngx_http_core_module.html#listen
ssl:
Parameter ssl (0.7.14) memungkinkan untuk menentukan bahwa semua koneksi yang diterima pada port ini harus bekerja dalam mode SSL.
http2:
Parameter http2 (1.9.5) mengkonfigurasi port untuk menerima koneksi HTTP / 2 .
Ini tidak berarti hanya menerima koneksi HTTP / 2.
Sesuai RFC7540
Klien yang mengajukan permintaan untuk URI "http" tanpa pengetahuan sebelumnya tentang dukungan untuk HTTP / 2 pada hop berikutnya menggunakan mekanisme Peningkatan HTTP. Klien melakukannya dengan membuat permintaan HTTP / 1.1 yang mencakup bidang tajuk Peningkatan dengan token "h2c".
Server yang tidak mendukung HTTP / 2 dapat menanggapi permintaan seolah-olah bidang header Upgrade tidak ada.
HTTP/1.1 200 OK
Content-Length: 243
Content-Type: text/html
Server yang mendukung HTTP / 2 menerima pembaruan dengan respons 101 (Protokol Pengalihan). Setelah baris kosong yang menghentikan respons 101, server dapat mulai mengirim frame HTTP / 2.
Untuk meringkas :
Klien yang tidak mendukung HTTP / 2 tidak akan pernah meminta server untuk upgrade komunikasi HTTP / 2: komunikasi di antara mereka akan sepenuhnya HTTP1 / 1.
Klien yang mendukung HTTP / 2 akan meminta server (menggunakan HTTP1 / 1) untuk peningkatan HTTP / 2:
- Jika server siap HTTP / 2, maka server akan melihat klien seperti itu: komunikasi di antara mereka akan dialihkan ke HTTP / 2.
- Jika server tidak siap HTTP / 2, maka server akan mengabaikan permintaan pembaruan yang menjawab dengan HTTP1 / 1: komunikasi di antara mereka harus tetap banyak HTTP1 / 1.
Mungkin lebih diringkas di sini: http://qnimate.com/http2-compatibility-with-old-browsers-and-servers/
Namun nginx doc menyatakan yang berikut tentang HTTP / 2 dari TLS:
Perhatikan bahwa menerima koneksi HTTP / 2 melalui TLS memerlukan dukungan ekstensi TLS "Aplikasi-Lapisan Protokol" (ALPN), yang hanya tersedia sejak OpenSSL versi 1.0.2.
Pastikan klien lama mematuhi persyaratan ini.