Undici را وادار به خواندن متغیرهای پروکسی محیط کنید
EnvHttpProxyAgent را آگاهانه به کار ببرید و اولویت حروف کوچک، قواعد عبور مستقیم، URLهای ثبتشده و no_proxy پویا را جدا بدانید.
وقتی محیط فرایند باید مسیر را انتخاب کند از EnvHttpProxyAgent استفاده کنید. اگر نقطه پایانی جزو تنظیم کلاینت است، Undici ProxyAgent صریح به کار ببرید. آن را به درخواست واقعی بدهید؛ ساختن agent بهتنهایی هیچ فراخوانی 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();
}کد را در محیط ماژول ES با Undici در دسترس، به نام proxy-check.mjs ذخیره کنید. این اجرای 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 | هنگام ساخت agent انتخاب میشود. بعد از تغییر این نقاط، dispatcher تازه بسازید. |
no_proxy محیط | هنگام ارسال درخواستها دوباره بررسی میشود. |
noProxy سازنده | سیاست عبور مستقیم را صریح ثابت میکند، بهجای پیروی از تغییرات بعدی محیط. |
قواعد عبور مستقیم میتوانند با میزبان و پورت اختیاری تطبیق کنند؛ یک ستاره تنها همه درخواستها را از پروکسی عبور نمیدهد و مستقیم میفرستد. اگر پروکسی ترافیک نمیبیند، تطبیق مقصد را بررسی کنید.
در Windows فرایند اصلی بزرگی حروف نام محیط را لحاظ نمیکند، پس HTTP_PROXY و http_proxy مقدارهای مستقل نیستند. نسخههای محیط Node Worker تمایز مستند حساس به بزرگی حروف دارند. پیش از تعیین هر دو نگارش برای آزمایش اولویت، این را در نظر بگیرید. نمونه dispatcher را بعد از کار میبندد؛ تا وقتی درخواستهای تکراری به همان سیاست نقطه پایانی ثبتشده نیاز دارند آن را نگه دارید.