توافق NO_PROXY عبر curl و.NET والحاويات
حوّل سياسة توجيه مباشر مشتركة إلى تهيئة خاصة بكل عميل باستخدام مجموعة صغيرة من الوجهات التمثيلية.
يضع فريق سلسلة تجاوز واحدة في ملف بيئة مشترك. يذهب curl مباشرة، ويستخدم تطبيق آخر الوكيل، وتتصرف حاوية بشكل مختلف مرة أخرى. وزّع الملف المشترك الأحرف نفسها. لكنه لم يوزّع محللاً مشتركاً واحداً.
الكائن الدائم هو السياسة: أي الوجهات ينبغي أن تكون مباشرة، وفي أي ظروف؟ افصل ذلك عن السلسلة التي يحتاجها كل برنامج.
اكتب المسارات المتوقعة أولاً
استخدم عناوين تمثيلية، بما في ذلك الحدود وليس النجاحات السهلة فقط:
| شكل الوجهة | سؤال لمالك السياسة |
|---|---|
| النطاق الأب | هل يتجاوز هو، أم أبناؤه فقط؟ |
| نطاق فرعي | هل يرث المسار نفسه؟ |
| عنوان IP خاص حرفي | هل يمكن الوصول إلى ذلك العنوان مباشرة من هذا العميل؟ |
| الخدمة نفسها تحت اسم مضيف | هل ينبغي أن تتوافق الطلبات القائمة على الاسم والطلبات القائمة على العنوان؟ |
| منفذ خدمة آخر | هل يغطي الاستثناء المضيف أم مستمعاً واحداً؟ |
ثم حدّد المستهلكين: الخادم الذي يسحب صورة، والبرنامج داخل الحاوية، ومكتبة HTTP للغة، ومتصفح تفاعلي يمكن أن تكون جميعها مدخلات منفصلة. ويمكن لتهيئة وكيل عميل Docker أن تملأ قيم بيئة الحاوية دون أن يضطر كل عميل داخلها إلى تنفيذ قواعد المطابقة نفسها.
ترجم بدلاً من النسخ الأعمى
من الأمثلة الموثقة على اختلاف حقيقي حدُّ النطاق الأب. يغطي استبعاد النطاق في curl النطاق المسمى والأبناء المطابقين. وتميّز سياسة البيئة في .NET بين الاسم المجرد وصيغة النطاق الفرعي ذات النقطة البادئة. ولا يمكن لقاعدة عالمية تقول أضف دائماً نقطة بادئة أن تعبّر عن السياستين بشكل موثوق.
يعتمد دعم نطاقات IP أيضاً على المستهلك وإصداره. فالجهاز الذي يحتوي على curl مستقل جديد قد يشغّل مع ذلك تطبيقاً مرتبطاً بـ libcurl أقدم، أو عميلاً يستخدم مكتبة أخرى تماماً. وإصدار نظام التشغيل ليس جرداً كاملاً للعملاء.
سجّل لكل مستهلك واجهة التهيئة المدعومة وأصغر تعبير عن المسارات المقصودة. وقد تكون قائمة مضيفين صريحة قصيرة أفضل من نمط ذكي لا يستطيع أحد شرح معناه.
افصل أدلة التهيئة عن أدلة الاتصال
يمكن لإعداد مُحلَّل أو لواجهة برمجة قرارات التوجيه أن يبيّن ما اختاره البرنامج. ثم تُظهر نتيجة الطلب ما إذا كان ذلك المسار قابلاً للاستخدام. في .NET، HttpClient.DefaultProxy.IsBypassed يوفّر فحص جانب التهيئة هذا عندما يكون الوكيل الافتراضي هو السياسة المستخدمة. لا تشخّص خدمة مباشرة يتعذر الوصول إليها كفشل في محلل التجاوز لمجرد أن الطلب انتهت مهلته.
احتفظ بوجهات الحدود عند تحديث عميل أو صورة أساسية. فهي تجعل تغييرات التوافق المستقبلية مرئية دون أن يضطر الفريق كله إلى إعادة اكتشاف سبب احتواء الملف على مدخلين متشابهين للنطاق.