curl، .NET اور کنٹینرز میں NO_PROXY کی مطابقت
مشترکہ براہِ راست روٹنگ پالیسی کو چند نمائندہ منزلوں کے ذریعے کلائنٹ کے مخصوص کنفیگریشن میں بدلیں۔
ایک ٹیم مشترکہ environment فائل میں ایک bypass سٹرنگ رکھتی ہے۔ curl سیدھا جاتا ہے، دوسری ایپلیکیشن proxy استعمال کرتی ہے، اور کنٹینر پھر مختلف رویہ رکھتا ہے۔ مشترکہ فائل نے وہی حروف تقسیم کیے۔ اس نے ایک مشترکہ parser تقسیم نہیں کیا۔
پائیدار چیز پالیسی ہے: کون سی منزلیں براہِ راست ہونی چاہئیں، کس شرط کے تحت؟ اسے ہر پروگرام کو درکار سٹرنگ سے الگ رکھیں۔
پہلے متوقع راستے لکھیں
آسان کامیابیوں کے علاوہ سرحدی صورتیں بھی شامل کرتے ہوئے نمائندہ پتے استعمال کریں:
| منزل کی شکل | پالیسی کے مالک سے سوال |
|---|---|
| بنیادی ڈومین | کیا اسے bypass کرنا ہے، یا صرف اس کی ذیلی ڈومینز کو؟ |
| ایک ذیلی ڈومین | کیا یہ وہی راستہ ورثے میں لیتی ہے؟ |
| لفظی نجی IP | کیا وہ پتہ اس کلائنٹ سے براہِ راست قابلِ رسائی ہے؟ |
| وہی سروس hostname کے تحت | کیا نام اور پتے کی بنیاد پر درخواستیں مماثل ہونی چاہئیں؟ |
| دوسری سروس پورٹ | کیا استثنا host کو محیط ہے یا ایک سننے والے کو؟ |
پھر صارفین کی شناخت کریں: image کھینچنے والا daemon، کنٹینر کے اندر پروگرام، کسی زبان کی HTTP لائبریری اور تعاملی براؤزر سب الگ اندراجات ہو سکتے ہیں۔ Docker کلائنٹ proxy کنفیگریشن کنٹینر کے environment اقدار بھر سکتی ہے، بغیر یہ کہے کہ اندر کے ہر کلائنٹ کو وہی مماثلت کے قواعد نافذ کرنے پڑیں۔
آنکھ بند کر کے نقل کرنے کے بجائے ترجمہ کریں
حقیقی فرق کی ایک درج مثال بنیادی ڈومین کی سرحد ہے۔ curl کا ڈومین استثنا نامزد ڈومین اور مماثل ذیلی ڈومینز کو محیط ہے۔ .NET کی environment پالیسی ننگے نام کو ابتدائی نقطے والی ذیلی ڈومین شکل سے الگ کرتی ہے۔ „ہمیشہ ابتدا میں نقطہ لگائیں“ والا عالمگیر قاعدہ دونوں پالیسیوں کو قابلِ اعتماد طریقے سے بیان نہیں کر سکتا۔
IP رینج کی معاونت بھی صارف اور اس کے ورژن پر منحصر ہے۔ نئے الگ curl والی مشین پھر بھی پرانی libcurl سے منسلک ایپلیکیشن، یا مکمل طور پر دوسری لائبریری استعمال کرنے والا کلائنٹ چلا سکتی ہے۔ آپریٹنگ سسٹم کی ریلیز کلائنٹس کی مکمل فہرست نہیں ہے۔
ہر صارف کے لیے، اس کا معاون کنفیگریشن انٹرفیس اور مطلوبہ راستوں کا سب سے چھوٹا اظہار درج کریں۔ مختصر واضح host فہرست اس ہوشیار نمونے سے بہتر ہو سکتی ہے جس کا مطلب کوئی نہیں سمجھا سکتا۔
کنفیگریشن کا ثبوت کنکشن کے ثبوت سے الگ رکھیں
تجزیہ شدہ سیٹنگ یا روٹنگ فیصلے کا API دکھا سکتا ہے کہ پروگرام نے کیا چنا۔ پھر درخواست کا نتیجہ دکھاتا ہے کہ وہ راستہ قابلِ استعمال تھا یا نہیں۔ .NET میں، HttpClient.DefaultProxy.IsBypassed وہ کنفیگریشن کی طرف کی جانچ فراہم کرتا ہے جب ڈیفالٹ proxy زیرِ استعمال پالیسی ہو۔ صرف اس لیے کہ درخواست کا وقت ختم ہو گیا، ناقابلِ رسائی براہِ راست سروس کو bypass parser کی ناکامی قرار نہ دیں۔
کلائنٹ یا بنیادی image کی تازہ کاری کرتے وقت سرحدی منزلیں محفوظ رکھیں۔ وہ مستقبل کی مطابقت کی تبدیلیوں کو نمایاں کرتی ہیں، بغیر اس کے کہ پوری ٹیم دوبارہ دریافت کرے کہ فائل میں دو ملتے جلتے ڈومین اندراجات کیوں ہیں۔