תנו ל-Undici לקרוא משתני פרוקסי מהסביבה
השתמשו ב-EnvHttpProxyAgent במכוון והבחינו בין עדיפות אותיות קטנות, עקיפות, כתובות פרוקסי שנקלטו ו-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();
}שמרו זאת בשם 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 | נבחרת בעת בניית ה-agent. צרו dispatcher חדש אחרי שינוי נקודות הקצה האלה. |
no_proxy מהסביבה | נבדק שוב כשבקשות נשלחות. |
noProxy בבנאי | מקבע במפורש מדיניות עקיפה במקום לעקוב אחרי שינויי סביבה מאוחרים. |
עקיפות יכולות להתאים למארחים ולפורטים אופציונליים; כוכבית יחידה עוקפת את הפרוקסי לכל בקשה. בדקו התאמת יעד אם הפרוקסי אינו רואה תעבורה.
ב-Windows התהליך הראשי אינו מבחין בין אותיות גדולות לקטנות בשמות הסביבה, ולכן HTTP_PROXY ו-http_proxy אינם ערכים עצמאיים. עותקי הסביבה של Node Worker מבחינים בגודל אותיות כפי שמתועד. הביאו זאת בחשבון לפני קביעת שתי הצורות כדי לבדוק עדיפות. הדוגמה סוגרת את ה-dispatcher אחרי העבודה; השאירו אותו כל עוד בקשות חוזרות צריכות אותה מדיניות נקודות קצה שנקלטה.