Kiểm tra HTTP/2 và nén gzip trên Nginx VPS Việt Nam bằng curl

Lưu ý: Các lệnh và chỉ số trong bài để tham khảo, cần thử trong môi trường phù hợp và xác minh tính năng thực tế theo gói dịch vụ. Không sử dụng để truy cập hệ thống không được phép.

Website chạy Nginx trên VPS Việt Nam có thể gửi response qua HTTP/2 và nén gzip, nhưng hai tính năng này giải quyết hai vấn đề khác nhau. HTTP/2 giúp quản lý nhiều request trên một kết nối hiệu quả hơn trong các điều kiện phù hợp, còn gzip giảm kích thước dữ liệu văn bản truyền qua mạng. Nếu trang vẫn chậm, cần đo thêm TTFB, render và JavaScript thay vì chỉ bật vài chỉ thị rồi kết luận tốc độ đã tốt.

Bài viết hướng dẫn kiểm tra bằng công cụ người quản trị thường có sẵn. Các ví dụ sử dụng tên miền giả và cần thử với môi trường do bạn sở hữu.

Kiểm tra HTTP version ở phía người dùng

Dùng curl -I --http2 https://www.example.com/ với phiên bản curl có hỗ trợ HTTP/2. Quan sát HTTP version trong output hoặc dùng curl -v để xem thương lượng ALPN và giao thức sử dụng. Nếu server nằm sau CDN, kết quả này đo kết nối trình duyệt/curl tới CDN, không tự chứng minh kết nối CDN–VPS cũng dùng HTTP/2.

Một kết nối HTTPS thành công qua HTTP/2 không đảm bảo website ít request hơn. Các file JS lớn, ảnh không được resize hoặc API chậm vẫn làm người dùng chờ lâu. Cần đánh giá Waterfall trong DevTools và trải nghiệm người dùng thực theo thiết bị/đường mạng.

Kiểm tra Content-Encoding: gzip

Gửi request với Accept-Encoding: gzip hoặc dùng curl --compressed -I https://www.example.com/app.css tùy dạng tài nguyên. Phản hồi có thể có Content-Encoding: gzip nếu server chọn nén và client hỗ trợ. Nếu header không xuất hiện, kiểm tra MIME type, kích thước tài nguyên, cấu hình Nginx/CDN và xem response có đang được nén theo cách khác như Brotli hay không.

Không nên nén lại ảnh JPEG, PNG, WebP hoặc video vốn đã được nén tốt; lợi ích thường thấp và có thể tốn CPU. Với HTML/CSS/JS/JSON, việc nén giúp giảm byte truyền, nhưng tỉ lệ phụ thuộc dữ liệu. Nên đo transferSize và encodedBodySize, không suy luận từ một file nhỏ.

Lưu ý cấu hình Nginx

Nginx có module gzip và các chỉ thị như gzip, gzip_types, gzip_min_length. Trước khi thay cấu hình, đọc phiên bản Nginx hiện hành, module được build và trạng thái proxy/CDN. Bạn nên giữ bản cấu hình cũ, dùng nginx -t trước khi reload, rồi kiểm tra cả trang login và API có dữ liệu riêng tư.

Không bật cache công khai chỉ vì muốn tận dụng gzip. Nén và cache có nhiệm vụ khác nhau: một response chứa cookie/tài khoản phải được kiểm soát bởi Cache-Control chính xác trước khi CDN lưu bản. Với nội dung nhạy cảm, cần đánh giá các rủi ro về nén kèm dữ liệu bí mật theo bối cảnh ứng dụng.

Đo trước và sau trên cùng điều kiện

Tạo ba nhóm trang thử: trang HTML công khai, tài nguyên tĩnh lớn và một endpoint API chỉ đọc. Ghi TTFB, dung lượng response sau nén, tổng request, lỗi 4xx/5xx và CPU của Nginx. Lặp lại vào các khung giờ giống nhau để tránh so sánh lưu lượng buổi sáng với giờ cao điểm.

Nếu CDN đang giữ cache HIT, việc sửa origin chưa chắc xuất hiện ngay ở phép đo. Kiểm tra Age, Cache-Control và quy tắc cache, sau đó dùng phương pháp làm mới asset có kiểm soát. Không cố tình vô hiệu hóa cache cho toàn bộ website production để chỉ phục vụ một thử nghiệm.

Khi nào HTTP/2 và gzip không phải điểm nghẽn?

Nếu API tạo HTML mất hai giây vì truy vấn database, chuyển HTTP/1.1 sang HTTP/2 không thể loại bỏ hai giây xử lý đó. Nếu JavaScript cần nhiều giây trên điện thoại yếu, nén file có ích cho truyền tải nhưng vẫn cần phân tích thời gian parse và execute. Tương tự, đường quốc tế bất ổn cần đo mạng riêng, không đổ hết lỗi cho web server.

Chốt lại bằng một bảng trước/sau có dữ liệu thô và điều kiện đo. Trang VPS Việt Nam dùng để xem thông số gói; HTTP/2 và gzip là tính năng triển khai phần mềm tùy môi trường, không phải cam kết tự có trên mọi cấu hình VPS.

Đọc tiếp trong cùng chủ đề

Xem thêm: Kiểm tra mạng nội địa và quốc tế trên VPS Việt Nam cho website. Đối chiếu nhu cầu thực tế với trang VPS Việt Nam và thông tin gói đang bán.