Թույլ տվեք Undici-ին կարդալ պրոքսիի միջավայրի փոփոխականները
Նպատակային օգտագործեք EnvHttpProxyAgent-ը և տարբերեք փոքրատառերի առաջնահերթությունը, շրջանցումները, պահված URL-ները և դինամիկ no_proxy-ը։
Օգտագործեք 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-ը աշխատանքից հետո․ պահեք այն, քանի դեռ կրկնվող հարցումներին պետք է նույն պահված վերջնակետերի քաղաքականությունը։