ফরওয়ার্ড প্রক্সির হোস্টনেম অনুরোধে অনুপস্থিত
সাধারণ HTTP ফরওয়ার্ড-প্রক্সি অনুরোধ গন্তব্য শনাক্ত করে, তাই Host ও Express হোস্টনেম প্রক্সির নিজস্ব উপনাম আলাদা করতে পারে না।
ধরা যাক, 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 লক্ষ্য এখনও গন্তব্য সার্ভারকেই শনাক্ত করে, প্রক্সি উপনাম নয়।