استخدم EnvHttpProxyAgent عندما يفترض أن تختار بيئة العملية المسار. واستخدم Undici ProxyAgent صريحاً عندما تكون النقطة جزءاً من إعداد العميل. مرّره إلى الطلب الفعلي؛ إنشاؤه وحده لا يغير أي استدعاء fetch:

import { EnvHttpProxyAgent, fetch } from 'undici';

const dispatcher = new EnvHttpProxyAgent();

try {
  const response = await fetch("https://example.com/", {
    dispatcher,
    signal: AbortSignal.timeout(15000),
  });
  console.log(response.status);
  await response.arrayBuffer();
} finally {
  await dispatcher.close();
}

احفظ الكود باسم proxy-check.mjs في إعداد وحدات ES يتوفر فيه Undici. يمرر تشغيل POSIX التالي مساري البروكسي وقائمة تجاوز فارغة:

http_proxy=http://203.0.113.10:8080 \
https_proxy=http://203.0.113.10:8080 \
no_proxy= \
node proxy-check.mjs

استبدل نقطة التوثيق ببروكسي HTTP لديك أو مرشح من قائمة بروكسي HTTP. التعيينات تخص هذا التشغيل؛ وتختلف الصياغة في الصدف الأخرى.

في Undici 8.12.3، تتقدم متغيرات الأحرف الصغيرة http_proxy وhttps_proxy وno_proxy على نظيراتها الكبيرة عند وجود الاثنين. تختار وجهات HTTP وHTTPS إعداداتها الخاصة. إعداد HTTP وحده يوفر أيضاً بديلاً لـ HTTPS؛ وإعداد HTTPS وحده لا يغطي HTTP. لا تفترض انطباق عرف ALL_PROXY لعميل آخر.

المدخلمتى يستخدمه هذا الإصدار
بيئة بروكسي HTTP/HTTPSتُختار عند إنشاء الوكيل. أنشئ dispatcher جديداً بعد تغيير تلك النقاط.
no_proxy في البيئةيُفحص مجدداً عند إرسال الطلبات.
noProxy في المُنشئيثبت سياسة التجاوز صراحة بدلاً من اتباع تغييرات البيئة اللاحقة.

يمكن للتجاوزات مطابقة المضيفين والمنافذ الاختيارية؛ النجمة وحدها تتجاوز البروكسي لكل الطلبات. افحص مطابقة الوجهة إذا لم يرَ البروكسي أي حركة.

في Windows، تتعامل العملية الرئيسية مع أسماء البيئة دون حساسية لحالة الأحرف، لذا HTTP_PROXY وhttp_proxy ليسا قيمتين مستقلتين. نسخ البيئة في Node Worker لها تمييز موثق حساس لحالة الأحرف. راعِ ذلك قبل اختبار الأولوية بتعيين الكتابتين. يغلق المثال dispatcher بعد العمل؛ وأبقه ما دامت الطلبات المتكررة تحتاج سياسة النقاط الملتقطة نفسها.

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