സ്റ്റാർട്ടപ്പിൽ Node-ന്റെ അന്തർനിർമ്മിത പ്രോക്സി പിന്തുണ പ്രവർത്തനക്ഷമമാക്കുക
ശരിയായ fetch, http/https പതിപ്പ് പരിധികളോടെ Node-ന്റെ എൻവയോൺമെന്റ് പ്രോക്സി സ്വിച്ച് ഉപയോഗിക്കുക, അതിന്റെ ക്ലയന്റ് പരിധി മനസ്സിലാക്കുക.
പ്രോസസ്സ് ആരംഭിക്കുമ്പോൾ ഇതിന്റെ അന്തർനിർമ്മിത പിന്തുണ പ്രവർത്തനക്ഷമമാക്കിയാൽ 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 കോൺഫിഗർ ചെയ്യുക. പ്രോക്സി റൂട്ടിംഗ് പ്രവർത്തനക്ഷമമാക്കുന്നതിന് സർട്ടിഫിക്കറ്റ് പരിശോധന പ്രവർത്തനരഹിതമാക്കേണ്ടതില്ല.