पर पाइथन (फ्लास्क) आरईएसटी एपीआई की सेवा करना मेरे पास पाइथन रीस्ट सेवा है और मैं HTTP2 का उपयोग करके इसे सेवा देना चाहता हूं। मेरा वर्तमान सर्वर सेटअप nginx -> Gunicorn
है। दूसरे शब्दों में, nginx (पोर्ट 443 और 80 जो पोर्ट 443 पर रीडायरेक्ट करता है) एक रिवर्स प्रॉक्सी के रूप में चल रहा है और आगे गनिकॉर्न (पोर्ट 8000, कोई एसएसएल) के लिए अनुरोध नहीं कर रहा है। nginx HTTP2 मोड में चल रहा है और मैं सर्वर को सरल GET भेजने के बाद क्रोम का उपयोग करके और 'प्रोटोकॉल' कॉलम का निरीक्षण करके सत्यापित कर सकता हूं। हालांकि, गनिकोर्न रिपोर्ट करता है कि अनुरोध प्राप्त करने वाले अनुरोध HTTP1.0 हैं। इसके अलावा, मैं इसे इस सूची में मिल coulnt't: https://github.com/http2/http2-spec/wiki/Implementations तो, मेरे सवाल कर रहे हैं:HTTP2
- यह HTTP2 के साथ एक अजगर (बोतल) आवेदन सेवा करने के लिए संभव है? यदि हां, कौन से सर्वर इसका समर्थन करते हैं?
- मेरे मामले में (एक रिवर्स प्रॉक्सी सर्वर और एक वास्तविक एपीआई की सेवा), जो सर्वर को HTTP2 का समर्थन करना है?
कारण मैं HTTP2 उपयोग करना चाहते हैं, क्योंकि कुछ मामलों में मैं सभी को एक साथ हज़ारों अनुरोधों को प्रदर्शन करने के लिए की जरूरत है और मैं अगर HTTP2 की मल्टिप्लेक्स अनुरोध सुविधा चीज़ों को गति कर सकते हैं देखने के लिए दिलचस्पी थी है। क्लाइंट के रूप में HTTP1.0 और पायथन अनुरोध के साथ, प्रत्येक अनुरोध ~ 80ms लेता है जो अस्वीकार्य है। दूसरा समाधान सिर्फ मेरे आरईएसटी संसाधनों को थोक/बैच करना होगा और एक ही अनुरोध के साथ एकाधिक भेजना होगा। हां, यह विचार ठीक लगता है, लेकिन मुझे वास्तव में यह देखने में दिलचस्पी है कि HTTP2 चीजों को गति दे सकता है या नहीं।
अंत में, मुझे यह उल्लेख करना चाहिए कि क्लाइंट पक्ष के लिए मैं हाइपर http2 एडाप्टर के साथ पाइथन अनुरोध का उपयोग करता हूं।