
Bật QUIC (HTTP/3) trên máy chủ Nginx
HTTP/3 là phiên bản mới nhất của HTTP, được thiết kế để cải thiện các hạn chế và vấn đề về hiệu suất của phiên bản tiền nhiệm HTTP/1.1 và HTTP/2. HTTP/3 được xây dựng trên giao thức vận chuyển (transport protocol) QUIC (Quick UDP Internet Connections), HTTP/3 cung cấp một số cải tiến, bao gồm giảm độ trễ, thiết lập kết nối nhanh hơn và cải thiện bảo mật.
QUIC, ban đầu được Google phát triển, thay thế TCP bằng UDP, cho phép kết nối đa kênh mà không bị head-of-line blocking, một vấn đề quan trọng trong HTTP/2 khi mất gói tin có thể làm chậm toàn bộ kết nối.
Head-of-Line (HOL) blocking trong HTTP là hiện tượng xảy ra khi một yêu cầu trong hàng đợi của một kết nối không thể được xử lý kịp thời, dẫn đến việc các yêu cầu phía sau nó cũng bị chậm trễ dù có thể được xử lý độc lập. Hiện tượng này có thể xảy ra trong các phiên bản HTTP cũ như HTTP/1.1, khi sử dụng một kết nối duy nhất cho nhiều yêu cầu đồng thời.
HOL blocking có thể gây ra sự chậm trễ đáng kể trong việc tải trang web, đặc biệt khi có nhiều yêu cầu đồng thời cần được xử lý.
Việc sử dụng HTTP/2 hoặc HTTP/3 là một giải pháp hiệu quả để giảm thiểu hoặc loại bỏ vấn đề này, cải thiện tốc độ và hiệu suất tải trang web.
Một trong những tính năng nổi bật của HTTP/3 là khả năng duy trì kết nối ngay cả khi điều kiện mạng thay đổi, chẳng hạn như chuyển từ Wi-Fi sang dữ liệu di động. Điều này đạt được thông qua khả năng di chuyển kết nối của QUIC, mang lại trải nghiệm duyệt web mượt mà và đáng tin cậy hơn cho người dùng. Ngoài ra, HTTP/3 tích hợp TLS 1.3, tăng cường bảo mật bằng cách mã hóa nhiều hơn quy trình thiết lập kết nối và giảm số lần khứ hồi cần thiết để thiết lập kết nối an toàn.
Những cải tiến này làm cho HTTP/3 đặc biệt phù hợp với các ứng dụng và dịch vụ web hiện đại đòi hỏi hiệu suất cao và độ trễ thấp.
Trong thời gian giới thiệu HTTP/3 thì có nhiều phiên bản dự thảo được đưa ra và thử nghiệm và cuối cùng đã hoàn thiện bản dự thảo để triển khai trên các máy chủ web và công cụ Internet.
Bài viết liên quan
Trong bài viết này, mang tính chất hướng dẫn, tôi sẽ chỉ cho bạn cách bật HTTP/3 trong Nginx.
Trước khi bắt đầu, hãy đảm bảo bạn đã cài đặt phiên bản ổn định mới nhất của Nginx . Khi viết hướng dẫn này, NGINX 1.26 là phiên bản ổn định mới nhất hỗ trợ HTTP/3.
Để cấu hình HTTP/3 cho website bạn sử dụng trên máy chủ Nginx bạn có thể sửa đổi file cấu hình theo đường dẫn /etc/nginx/nginx.conf
hoặc /etc/nginx/fastpanel2-available/vutruso_com_usr/vutruso.com.conf
Lưu ý: Phần này tuỳ theo cấu trúc web stack mà bạn cài có thể khác nhau nên bạn có thể sửa đổi cho phù hợp, nó code HTTP/3 nó sẽ nằm trong server block như sau:
server { listen 443 ssl; listen [::]:443 ssl; listen 443 quic reuseport; listen [::]:443 quic reuseport; # Enable http/2 http2 on; # Enable http/3 http3 on; quic_retry on; # Add http/3 headers. add_header Alt-Svc 'h3=":$server_port"; ma=86400'; add_header x-quic 'h3'; # Server details. server_name vutruso.com www.vutruso.com; root /var/www/html; index index.php; # SSL certificate and key. ssl_certificate /location/cert.pem; ssl_certificate_key /location/cert_key.pem; # SSL configurations, including strong ciphers. ssl_protocols TLSv1.3 TLSv1.2; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers on; ssl_stapling on; ssl_early_data on; # Enables 0-RTT. # Index location block. location / { try_files $uri $uri/ /index.php?args; } location ~ \.php$ { # ... PHP location block .... } }
Sau khi thực hiện các thay đổi và lưu tệp cấu hình sâu đó test cấu hình Nginx xem có lỗi cú pháp hay không với lệnh.
sudo nginx -t
Khởi động lại dịch vụ Nginx với lệnh
sudo systemctl restart nginx
Bạn có thể truy cập vào website, ấn phím F12 lên và chuyển qua tab network để test hoặc truy cập vào website HTTP/3 Check tại đây, sau đó nhập tên miền vào để kiểm tra.
Nếu bạn sử dụng Hosting tại Vũ Trụ Số bạn có thể dễ dàng bật HTTP/3 trong bảng điều khiển như sau.
1. Đăng nhập vào bảng điều khiển Hosting
2. Click vào Options như hình dưới
3. Chọn vào HTTPS
4. Check vào Enable HTTP3 để bật HTTP3
Okay, vậy là bạn đã bật được HTTP3 trên máy chủ Nginx.
Hy vọng bài viết sẽ giúp ích được cho nhiều người.