Tôi có dịch vụ REST REST và tôi muốn phục vụ nó bằng HTTP2. Thiết lập máy chủ hiện tại của tôi là nginx -> Gunicorn
. Nói cách khác, nginx (cổng 443 và 80 chuyển hướng đến cổng 443) đang chạy như một proxy ngược và chuyển tiếp các yêu cầu tới Gunicorn (cổng 8000, không có SSL). nginx đang chạy trong chế độ HTTP2 và tôi có thể xác minh rằng bằng cách sử dụng chrome và kiểm tra cột 'giao thức' sau khi gửi GET đơn giản tới máy chủ. Tuy nhiên, Gunicorn báo cáo rằng các yêu cầu nhận được là HTTP1.0. Ngoài ra, tôi coulnt't tìm thấy nó trong danh sách này: https://github.com/http2/http2-spec/wiki/Implementations Vì vậy, câu hỏi của tôi là:Cung cấp API REST (Flask) REST qua HTTP2
- Có thể phục vụ một (Flask) ứng dụng Python với HTTP2? Nếu có, máy chủ nào hỗ trợ nó?
- Trong trường hợp của tôi (một máy chủ proxy ngược và một máy chủ phục vụ API thực tế), máy chủ nào phải hỗ trợ HTTP2?
Lý do tôi muốn sử dụng HTTP2 là vì trong một số trường hợp, tôi cần thực hiện hàng nghìn yêu cầu và tôi quan tâm xem tính năng yêu cầu ghép kênh của HTTP2 có thể tăng tốc độ không. Với HTTP1.0 và Yêu cầu Python là ứng dụng khách, mỗi yêu cầu mất ~ 80ms không thể chấp nhận được. Các giải pháp khác sẽ chỉ là số lượng lớn/batch tài nguyên REST của tôi và gửi nhiều với một yêu cầu duy nhất. Vâng, ý tưởng này nghe có vẻ tốt, nhưng tôi thực sự quan tâm để xem liệu HTTP2 có thể tăng tốc mọi thứ hay không.
Cuối cùng, tôi nên đề cập rằng đối với phía máy khách, tôi sử dụng các yêu cầu Python với bộ điều hợp Hyper http2.