הפעלת תמיכת הפרוקסי המובנית של Node בעת האתחול
השתמשו במתג פרוקסי הסביבה של Node עם ספי הגרסאות הנכונים של fetch ו-http/https והבינו את היקף הלקוח שלו.
Node יכול לקרוא בעצמו משתני סביבה של פרוקסי כאשר התמיכה המובנית שלו מופעלת בעת אתחול התהליך. הלקוחות הזמינים תלויים בגרסת ה-runtime:
- fetch המובנה תומך ב-NODE_USE_ENV_PROXY החל מ-Node 24.0.0, עם העברה לאחור ל-22.21.0.
- התמיכה המובנית ב-node:http וב-node:https דרך סוכני ברירת המחדל הגלובליים שלהם מתחילה ב-24.5.0, וגם הועברה לאחור ל-22.21.0.
- מתג שורת הפקודה --use-env-proxy מתחיל ב-24.5.0 וב-22.21.0.
בגרסה תואמת, דוגמת POSIX-shell הזו מגדירה פרוקסי HTTP ארגוני אחד לשתי סכימות היעד:
export HTTP_PROXY=http://proxy.example.net:8080
export HTTPS_PROXY=http://proxy.example.net:8080
export NO_PROXY=localhost,127.0.0.1,.internal.example
node --use-env-proxy app.js
השם HTTPS_PROXY בוחר את המסלול ליעדי HTTPS; הכתובת עדיין יכולה לציין פרוקסי HTTP. התאימו את NO_PROXY ליעדים שאמורים לעקוף אותו. לבדיקת כתובת ציבורית עצמאית ללא חשבון פרוקסי, רשומת HTTP מרשימת פרוקסי HTTP יכולה לספק את שני ערכי הפרוקסי בעוד העקיפות הפנימיות הנדרשות נשארות.
צורת מתג הסביבה היא חלופה:
export NODE_USE_ENV_PROXY=1
node app.js
הגדירו את משתני הניתוב לפני הפעלת Node בכל אחת מהצורות. הקצאת דגל ההצטרפות ל-process.env לאחר האתחול אינה מריצה מחדש את אתחול ההפעלה.
בדקו איזה לקוח HTTP משמש בפועל
סוכני ברירת המחדל הגלובליים רלוונטיים לקריאות http ו-https שמשתמשות בהם. ספרייה עם סוכן או מפיץ מותאם משלה שולטת בתחבורה שלה; שקעי TCP גולמיים נמצאים מחוץ לתכונת ניתוב ה-HTTP הזו. עבור לקוח Undici תואם, מפיץ ProxyAgent מפורש הוא ממשק נפרד מקומי ללקוח.
אם יישום מחליף סוכן גלובלי, בחנו את ההחלפה לפני שאתם מניחים שהיא שומרת על התנהגות פרוקסי האתחול. בדומה לכך, תצורת הרישום של npm היא הגדרת כלי נפרדת והיא אינה מוכיחה כיצד app.js מנתב בקשות.
לדרישת אמון TLS ארגונית, הגדירו את ה-CA המהימן המתאים ל-runtime. הפעלת ניתוב פרוקסי אינה מחייבת השבתת אימות תעודות.