listen 443 ssl
: làm cho nginx nghe trên tất cả địa chỉ ipv4 trên máy chủ, trên cổng 443 ( 0.0.0.0:443
)
trong khi
listen [::]:443 ssl
: làm cho nginx nghe trên tất cả địa chỉ ipv6 trên máy chủ, trên cổng 443 ( :::443
)
[::]:443
sẽ không làm cho nginx phản hồi trên ipv4 theo mặc định, trừ khi bạn chỉ định tham số ipv6only=off
:
listen [::]:443 ipv6only=off;
Theo tài liệu: http://nginx.org/en/docs/http/ngx_http_core_module.html#listen
ssl:
Tham số ssl (0.7.14) cho phép chỉ định rằng tất cả các kết nối được chấp nhận trên cổng này sẽ hoạt động ở chế độ SSL.
http2:
Tham số http2 (1.9.5) định cấu hình cổng để chấp nhận kết nối HTTP / 2 .
Điều này không có nghĩa là nó chỉ chấp nhận các kết nối HTTP / 2.
Theo RFC7540
Một khách hàng đưa ra yêu cầu cho URI "http" mà không có kiến thức trước về hỗ trợ HTTP / 2 trong lần nhảy tiếp theo sử dụng cơ chế Nâng cấp HTTP. Máy khách thực hiện điều đó bằng cách thực hiện yêu cầu HTTP / 1.1 bao gồm trường tiêu đề Nâng cấp với mã thông báo "h2c".
Một máy chủ không hỗ trợ HTTP / 2 có thể đáp ứng yêu cầu như thể trường tiêu đề Nâng cấp không có.
HTTP/1.1 200 OK
Content-Length: 243
Content-Type: text/html
Một máy chủ hỗ trợ HTTP / 2 chấp nhận nâng cấp với phản hồi 101 (Chuyển đổi giao thức). Sau khi dòng trống kết thúc phản hồi 101, máy chủ có thể bắt đầu gửi các khung HTTP / 2.
Để tóm tắt:
Một máy khách không hỗ trợ HTTP / 2 sẽ không bao giờ yêu cầu máy chủ nâng cấp giao tiếp HTTP / 2: giao tiếp giữa chúng sẽ hoàn toàn là HTTP1 / 1.
Một máy khách hỗ trợ HTTP / 2 sẽ yêu cầu máy chủ (sử dụng HTTP1 / 1) để nâng cấp HTTP / 2:
- Nếu máy chủ đã sẵn sàng HTTP / 2, thì máy chủ sẽ thông báo cho khách hàng như vậy: giao tiếp giữa chúng sẽ được chuyển sang HTTP / 2.
- Nếu máy chủ chưa sẵn sàng HTTP / 2, thì máy chủ sẽ bỏ qua yêu cầu nâng cấp trả lời bằng HTTP1 / 1: giao tiếp giữa chúng sẽ giữ nhiều HTTP1 / 1.
Có thể tóm tắt nhiều hơn ở đây: http://qnimate.com/http2-compabilities-with-old-browsers-and-servers/
Tuy nhiên, tài liệu nginx nêu sau đây về HTTP / 2 trên TLS:
Lưu ý rằng việc chấp nhận các kết nối HTTP / 2 qua TLS yêu cầu hỗ trợ mở rộng TLS Giao thức tầng ứng dụng (ALPN), chỉ khả dụng kể từ phiên bản OpenSSL 1.0.2.
Đảm bảo khách hàng cũ tuân thủ yêu cầu này.