Giao thức truyền siêu văn bản phiên bản 2 (HTTP/2) làphiên bản mới nhất của giao thức HTTP,được công bố là tiêu chuẩn IETF trongRFC7540năm2015.Trọng tâm của giao thức là hiệu suất; cụ thể là độ trễ mà người dùng cuối cảm nhận được, mức 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 một trang web. Giao thức này tương thích ngược, vì vậycá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 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 đã cài đặt phiên bản Nginx bắt buộc trên bản phân phối Linux bạn chọn và bạn biết cách sử dụng Let's Encrypt hoặc bạn biết cách cấp chứng chỉ tự ký.
Và tải lại cấu hình Nginx của bạn:
Sau đâ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:
Để 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ông cụ phát triển của trình duyệt hoặc tệp nhật ký Nginx. Ảnh chụp màn hình bên dưới từ trình duyệt Google Chrome cho thấy HTTP/2 đang hoạt động trên https://example.comdomain.
Bạn cũng có thể sử dụng biến nhúng Nginx$http2 để xemgiao thức đã đàm phán. Biến này sẽ ghi lại:“
Và đó là tất cả những gì cần làm để bật HTTP/2 trên Nginxserver của bạn.
Yêu cầu
Để bật HTTP/2 trong Nginx, bạn sẽ cần đáp ứng 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 (OpenSSL version) hoặc cài đặt OpenSSL mới nhất.
- Chứng chỉ SSL/TLS từ Let's Encrypt hoặc chứng chỉ tự ký.
- TLS 1.2 trở lên được bậ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 qua TLS.
Bật HTTP/2 trong Nginx
Để bật HTTP/2 trong Nginx, chúng ta phảithêm tham sốhttp2
vàolisten
chỉ thị trong máy chủ ảo của chúng ta:
Mã:
listen 443 ssl http2;
Mã:
sudo systemctl reload nginx.service
Mã:
server {
listen 443 ssl [B]http2[/b];
listen [::]:443 ssl [B]http2[/b];
server_name example.com;
root /path/to/public;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
ssl_protocols [B]TLSv1.2[/b];
}
Bạn cũng có thể sử dụng biến nhúng Nginx$http2 để xemgiao thức đã đàm phán. Biến này sẽ ghi lại:“
h2
” cho HTTP/2 qua TLS, “h2c
” đối với HTTP/2 qua TCP văn bản thuần túy hoặc một chuỗi rỗng nếu không thì trong nhật ký truy cập Nginx nếu được cấu hình để thực hiện như vậy.Và đó là tất cả những gì cần làm để bật HTTP/2 trên Nginxserver của bạn.