الوسيط المحلي الذي يستمع بجانب التطبيق لا يعيد إنتاج شبكة تتطلب المرور عبر وسيط. فقد يتجاهل التطبيق الوسيط المهيّأ ويتصل مباشرة ويبلّغ عن النجاح مع ذلك.

افصل شبكة التطبيق عن مسار الوسيط إلى الخارج. ثمة ترتيب قائم على الحاويات يضع التطبيق على شبكة داخلية فقط ويمنح الوسيط شبكة خروج ثانية. في تعريف Compose قائم، قد تبدو ارتباطات الشبكة هكذا:

services:
  app:
    networks: [clients]
  proxy:
    networks: [clients, egress]
networks:
  clients:
    internal: true
  egress: {}

هذا مقتطف شبكة لخدمات معرّفة سلفًا. هيّئ وسيط التمرير المعتمد وعميل التطبيق الفعلي كلًا على حدة. توثّق Docker الشبكات الداخلية بأنها معزولة خارجيًا؛ ولا يملك الشبكة الخارجية الإضافية في هذا الترتيب سوى الوسيط.

أدرج حالة سلبية بإزالة استخدام الوسيط: ينبغي أن يفشل طلب التطبيق الخارجي. وفي وسيط HTTP موثّق، ينبغي أن يُنتج الحساب المرفوض فشل المصادقة الخاص به، بينما يصل الحساب المقبول إلى الهدف مع ملاحظة مقابلة من الوسيط.

اختبر الحالات المسموح بها والمرفوضة للوسيط كلًا على حدة. أبقِ التطبيق بعيدًا عن الشبكات الخارجية الأخرى وتجنّب إضافة نمط شبكة مضيف يتجاوز الوسيط. لا يصبح الطلب الناجح دليلًا مفيدًا إلا بعد أن يكون المسار المقصود هو المسار الوحيد الذي يتيحه الاختبار.

مقالات ذات صلة