Hướng dẫn kích hoạt HTTP/2 trên Nginx

Hypertext Transfer Protocol Version 2 ( HTTP / 2 ) là  phiên bản mới nhất của giao thức HTTP,  công bố như là một tiêu chuẩn IETF trong  RFC 7540  trong  năm 2015. Trọng tâm của giao thức là về hiệu suất; cụ thể, độ trễ nhận thức của người dùng cuối, sử dụng tài nguyên mạng và máy chủ. Một mục tiêu chính là cho phép sử dụng một kết nối duy nhất từ ​​trình duyệt đến trang Web. Giao thức tương thích ngược, vì vậy  các phương thức HTTP, mã trạng thái và ngữ nghĩa giống như các phiên bản trước của giao thức. Nginx có hỗ trợ HTTP / 2 kể từ phiên bản 1.9.5.  Trong hướng dẫn này, Tôi sẽ giả định rằng bạn đã có cấu hình TLS hoạt động và bạn đã yêu cầu phiên bản Nginx được cài đặt trên bản phân phối Linux của bạn và bạn biết cách sử dụng Let Encrypt hoặc bạn biết cách phát hành tự ký chứng chỉ.

Yêu cầu

Để bật HTTP / 2 trong Nginx, bạn sẽ cần phải thực hiện các yêu cầu sau:

  • Nginx phiên bản 1.9.5 trở lên. Bạn có thể kiểm tra phiên bản Nginx của mình bằng cách chạy  lệnh ( nginx -v) .
  • OpenSSL phiên bản 1.0.2 trở lên. Bạn có thể kiểm tra phiên bản OpenSSL của mình bằng cách chạy lệnh ( phiên bản OpenSSL ).
  • Chứng chỉ SSL / TLS từ Let Encrypt hoặc chứng chỉ tự ký.
  • Giao thức TLS 1.2 trở lên được kích hoạt. Nếu không, bạn sẽ không thể sử dụng HTTP / 2. Việc triển khai HTTP / 2 phải sử dụng TLS phiên bản 1.2 trở lên cho HTTP / 2 so với TLS.

Kích hoạt HTTP / 2 trong Nginx

Để bật HTTP / 2 trong Nginx, chúng ta phải  thêm  http2 tham số vào lệnh  listen trong máy chủ ảo của mình:

listen 443 ssl http2;

Và tải lại cấu hình Nginx của bạn:

sudo systemctl reload nginx.service

Dưới đây là cấu hình máy chủ ảo tối thiểu có thể được sử dụng để bật HTTP / 2 trong một số máy chủ ảo:

server {

  listen 443 ssl http2;
  listen [::]:443 ssl http2;

  server_name example.com;
  root /path/to/public;

  ssl_certificate /path/to/certificate.crt;
  ssl_certificate_key /path/to/private.key;

  ssl_protocols TLSv1.2;

}

Để kiểm tra xem máy chủ của bạn có hỗ trợ HTTP / 2 hay không, bạn có thể sử dụng các công cụ phát triển trình duyệt hoặc tệp nhật ký Nginx. Dưới đây là ảnh chụp màn hình từ trình duyệt Google Chrome hiển thị HTTP / 2 đang hoạt động trên tên miền https://example.com.

Bạn cũng có thể sử dụng biến nhúng Nginx  $ http2 để xem  giao thức được đàm phán. Biến này sẽ đăng nhập: h2“ ” cho HTTP / 2 so với TLS, h2c“ ” cho HTTP / 2 so với dạng cleartext TCP, hoặc một chuỗi rỗng khác trong nhật ký truy cập Nginx nếu cấu hình để làm như vậy.

Và đó là tất cả để kích hoạt HTTP / 2 trên máy chủ Nginx của bạn.

Facebook Comments

Trả lời

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *