Node اس وقت پراکسی ماحول کے متغیرات خود پڑھ سکتا ہے جب عمل کے آغاز پر اس کی بلٹ ان سپورٹ فعال ہو۔ دستیاب کلائنٹ runtime کے ورژن پر منحصر ہیں:

  • بلٹ ان fetch Node 24.0.0 سے NODE_USE_ENV_PROXY کی حمایت کرتا ہے، 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 منزلوں کے لیے راستہ منتخب کرتا ہے؛ URL پھر بھی HTTP پراکسی کا نام دے سکتا ہے۔ NO_PROXY کو ان منزلوں کے مطابق کریں جنہیں اسے بائی پاس کرنا چاہیے۔ پراکسی اکاؤنٹ کے بغیر آزاد عوامی URL ٹیسٹ کے لیے، HTTP پراکسی فہرست سے HTTP اندراج دونوں پراکسی اقدار فراہم کر سکتا ہے جبکہ مطلوبہ اندرونی بائی پاس برقرار رہتے ہیں۔

ماحول سوئچ کی شکل ایک متبادل ہے:

export NODE_USE_ENV_PROXY=1
node app.js

کسی بھی شکل کے ساتھ Node شروع کرنے سے پہلے روٹنگ متغیرات مقرر کریں۔ آغاز کے بعد opt-in پرچم کو process.env میں تفویض کرنا اسٹارٹ اپ ابتدا کو دوبارہ نہیں چلاتا۔

جانچیں کہ حقیقت میں کون سا HTTP کلائنٹ استعمال ہو رہا ہے

ڈیفالٹ گلوبل ایجنٹس ان http اور https کالوں سے متعلق ہیں جو انہیں استعمال کرتی ہیں۔ اپنے حسب ضرورت ایجنٹ یا ڈسپیچر والی لائبریری اپنی ٹرانسپورٹ خود کنٹرول کرتی ہے؛ خام TCP ساکٹس اس HTTP روٹنگ خصوصیت سے باہر ہیں۔ مطابق Undici کلائنٹ کے لیے، ایک واضح ProxyAgent ڈسپیچر کلائنٹ کے اندر ایک الگ انٹرفیس ہے۔

اگر کوئی ایپلیکیشن گلوبل ایجنٹ بدلتی ہے، تو یہ فرض کرنے سے پہلے کہ یہ اسٹارٹ اپ پراکسی رویہ برقرار رکھتی ہے، اس تبدیلی کا معائنہ کریں۔ اسی طرح، npm کی رجسٹری کنفیگریشن ایک الگ ٹول سیٹنگ ہے اور یہ ثابت نہیں کرتی کہ app.js درخواستوں کو کیسے روٹ کرتا ہے۔

کارپوریٹ TLS اعتماد کی ضرورت کے لیے، runtime کے لیے موزوں قابل اعتماد CA ترتیب دیں۔ پراکسی روٹنگ فعال کرنے کے لیے سرٹیفکیٹ کی تصدیق غیر فعال کرنے کی ضرورت نہیں۔

متعلقہ مضامین