Nginx रिवर्स-प्रॉक्सी और बैकएंड वेबसर्वर के बीच HTTP / 2.0 का उपयोग करें


19

मैं एक बैकएंड वेबसर्वर के सामने nginx को रिवर्स-एसएसएल-प्रॉक्सी के रूप में उपयोग करता हूं जो HTTP / 2.0 करने में सक्षम है।

मैंने देखा कि nginx ने HTTP / 1.1 के बजाय HTTP / 1.1 के माध्यम से बैकएंड सर्वर के लिए अनुरोधों का अनुमान लगाया है। क्या nginx को un-एन्क्रिप्टेड HTTP / 2.0 कनेक्शन के बजाय उपयोग करना संभव है? क्या इससे प्रदर्शन बढ़ेगा?


हालांकि http2 स्पेक्स का कहना है कि इसे एन्क्रिप्शन की आवश्यकता नहीं है, nginx वर्तमान में ssl के बिना http2 का समर्थन नहीं करता है।
मार्को

अगर मैंने https: // पता निर्दिष्ट किया होता तो यह HTTP / 2.0 का उपयोग करता? ठीक है, तो मुझे लगता है कि मैं HTTP / 1.1 का उपयोग कर रहा हूं। यह दो बार यातायात को एन्क्रिप्ट करने के लिए समझ में नहीं आता है और एसएसएल के साथ HTTP / 2.0 का प्रदर्शन संभवतः एसएसएल के बिना HTTP / 1.1 जितना अच्छा नहीं होगा, क्या यह होगा? मेरा मतलब है, उस तरह के रिवर्स-एसएसएल-प्रॉक्सी को बेकार बना देता है;)
एस

यदि आप एक ही मशीन पर हैं तो सामने और बैकएंड सर्वर के बीच ट्रैफ़िक को एन्क्रिप्ट करने से कोई फर्क नहीं पड़ता। प्रदर्शन के लिए: http2.1 http1.1 की तुलना में काफी तेज़ है, एन्क्रिप्शन के साथ भी। अगर यह एक फर्क पड़ता है की कोशिश कर के बिना नहीं कह सकता।
मार्को

जवाबों:


21

यह पाया: https://trac.nginx.org/nginx/ticket/923

निकट भविष्य में प्रॉक्सी मॉड्यूल में HTTP / 2 समर्थन को लागू करने की कोई योजना नहीं है

टिकट में संदर्भित मेल से अंश:

इसे लागू करने का लगभग कोई मतलब नहीं है, क्योंकि मुख्य HTTP / 2 लाभ यह है कि यह एक ही कनेक्शन के भीतर कई अनुरोधों को बहुसंकेतन की अनुमति देता है, इस प्रकार [लगभग] असंतुलित अनुरोधों की संख्या पर सीमा को हटा देता है - और बात करते समय ऐसी कोई सीमा नहीं है। अपने स्वयं के बैकएंड। इसके अलावा, HTTP / 2 से बैकएंड का उपयोग करते समय चीजें और भी बदतर हो सकती हैं, क्योंकि एकल टीसीपी कनेक्शन कई लोगों के बजाय उपयोग किया जा रहा है।


9
ऐसा लगता है कि आप HTTP / 2 सर्वर पुश का उपयोग नहीं कर सकते हैं यदि आप nginx के साथ प्रॉक्सी कर रहे हैं, भले ही बैकएंड सर्वर अन्यथा इसका समर्थन करेगा यदि इसे सीधे एक्सेस किया गया था।
थोमसट्रेटर

3
मैं धीमे कनेक्शन पर गैर-स्थानीय साइटों के लिए nginx रिवर्स प्रॉक्सी का उपयोग करता हूं ताकि HTTP / 2 मेरी मदद करे। यह शर्म की बात है कि
नगनेक्स

5

दुख की बात है कि nginx एक http / 2 बैकएंड सर्वर के लिए प्रॉक्सी का समर्थन नहीं करता है, https://www.nginx.com/blog/http2-module-nginx/#QandA से संदर्भित

प्रश्न: क्या आप HTTP / 2 का समर्थन अपस्ट्रीम की तरफ करेंगे, या केवल क्लाइंट की तरफ HTTP / 2 का समर्थन करेंगे?

A: फिलहाल, हम केवल क्लाइंट की तरफ HTTP / 2 का समर्थन करते हैं। आप HTTP_2 को प्रॉक्सी_पास के साथ कॉन्फ़िगर नहीं कर सकते। [संपादक - इस पोस्ट के मूल संस्करण में, यह वाक्य गलत तरीके से लिखा गया था, "आप HTTP / 2 को प्रॉक्सी_पास के साथ कॉन्फ़िगर कर सकते हैं। हम इस कारण हुए किसी भी भ्रम के लिए क्षमा चाहते हैं।"

लेकिन बैकएंड की तरफ HTTP / 2 का क्या मतलब है? क्योंकि जैसा कि आप बेंचमार्क से देख सकते हैं, निम्न can लेटेंसी नेटवर्क जैसे अपस्ट्रीम कनेक्शन के लिए HTTP / 2 में ज्यादा लाभ नहीं है।

इसके अलावा, एनजीआईएनएक्स में आपके पास रखने का मॉड्यूल है, और आप एक रखने वाले कैश को कॉन्फ़िगर कर सकते हैं। HTTP / 2 का मुख्य प्रदर्शन लाभ अतिरिक्त हैंडशेक को समाप्त करना है, लेकिन यदि आप ऐसा पहले से ही एक रखने योग्य कैश के साथ करते हैं, तो आपको अपस्ट्रीम साइड पर HTTP / 2 की आवश्यकता नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.