मान लीजिए east.proxy.example और west.proxy.example एक ही सामान्य HTTP प्रॉक्सी श्रोता पर हल होते हैं। इनमें से कोई भी नाम इस्तेमाल करने वाला क्लाइंट भेज सकता है:

GET http://www.example.org/report HTTP/1.1
Host: www.example.org

अनुरोध वेबसाइट की पहचान करता है। यह वह प्रॉक्सी उपनाम नहीं ले जाता जिसे क्लाइंट ने TCP खोलने से पहले हल किया था। इसलिए Express में Host से प्राप्त होस्टनाम उन प्रॉक्सी सबडोमेन के आधार पर मार्ग नहीं चुन सकता।

यदि आप क्लाइंट और प्रॉक्सी नियंत्रित करते हैं, तो स्पष्ट राउटिंग इनपुट दें। X-Route लेबल लागू करने वाली प्रॉक्सी के लिए:

curl --proxy http://east.proxy.example:8080 \
  --proxy-header 'X-Route: east' \
  https://www.example.org/

--proxy-header प्रॉक्सी के साथ संचार को लक्षित करता है, CONNECT सहित। HTTPS अनुरोध पर सामान्य -H हेडर गंतव्य के एन्क्रिप्टेड HTTP आदान-प्रदान के भीतर आता है।

सर्वर को राउटिंग नीति लागू करनी और अधिकृत करनी चाहिए, फिर लेबल को वेबसाइट तक भेजे बिना उपभोग करना चाहिए। वैकल्पिक रूप से, अलग से कॉन्फ़िगर किए गए श्रवण एंडपॉइंट या प्रॉक्सी खातों को राउटिंग इनपुट के रूप में उपयोग करें।

HTTPS गंतव्यों के लिए, Node प्रारंभिक टनल अनुरोध अपने HTTP सर्वर की connect घटना के माध्यम से प्राप्त करता है। सामान्य Express अनुरोध मिडलवेयर उस घटना को संभालता नहीं है। इसका CONNECT लक्ष्य अब भी गंतव्य सर्वर की पहचान करता है, प्रॉक्सी उपनाम की नहीं।

संबंधित लेख