HTTP ဦးတည်ရာများအတွက် စာလုံးအသေးဖြင့် http_proxy ကို သတ်မှတ်ပါ။ curl သည် စာလုံးအကြီးဖြင့် HTTP_PROXY ကို ရည်ရွယ်ချက်ရှိရှိ လျစ်လျူရှုသည်။ POSIX shell တွင်—

http_proxy=http://127.0.0.1:8080 curl http://example.com/
https_proxy=http://127.0.0.1:8080 curl https://example.com/

ဤတန်ဖိုးသတ်မှတ်ချက်များသည် နောက်မှ ချက်ချင်းလိုက်လာသည့် command အတွက်သာ အကျိုးသက်ရောက်သည်။ နမူနာရှိ နားထောင်လိပ်စာကို သင့်ပရောက်စီဖြင့် အစားထိုးပါ။ အများသုံး endpoint များကို နှိုင်းယှဉ်ရန် HTTP ပရောက်စီစာရင်းမှ တစ်ခုရွေးပါ။ https_proxy ကိန်းရှင်သည် HTTPS ဦးတည်ရာများအတွက် လမ်းကြောင်းရွေးသည်။ http:// ပါသည့် တန်ဖိုးသည် ဦးတည်ရာအထိ tunnel တည်ဆောက်နိုင်သော သာမန် HTTP ပရောက်စီကိုပင် ဆိုလိုဆဲဖြစ်သည်။ PowerShell နှင့် Windows command shell များတွင် တန်ဖိုးသတ်မှတ်သည့် syntax ကွဲပြားသည်။

ဤစာလုံးအကြီးပုံစံက ဘာကြောင့် အန္တရာယ်ရှိသလဲ

CGI ပတ်ဝန်းကျင်များသည် ဝင်လာသည့် request header များကို စာလုံးအကြီး HTTP_ ကိန်းရှင်များအဖြစ် ပြောင်းနိုင်သည်။ ထို့ကြောင့် Proxy အမည်ရှိ header သည် HTTP_PROXY ဖြစ်လာနိုင်သည်။ ၎င်းကို အထွက်ချိတ်ဆက်မှု၏ configuration အဖြစ် ယုံကြည်ပါက request ဒေတာက ပရောက်စီရွေးနိုင်မည်ဖြစ်သည်။ curl ၏ စာလုံးအသေးလိုအပ်ချက်က ဤပြောင်းလဲချိတ်ဆက်မှုကို ရှောင်ရှားပေးသည်။ ခြွင်းချက်သည် HTTPS နှင့် အခြားပရိုတိုကောကိန်းရှင်များအတွက် အတိအကျ တူညီစွာ မသက်ရောက်ပါ။

ကိန်းရှင်ပြောင်းသော်လည်း လမ်းကြောင်းမပြောင်းလျှင်

ပရိုတိုကောသီးသန့် ကိန်းရှင်ကို အရင်ရှာပြီးနောက် အရန်ရွေးချယ်စရာ ALL_PROXY ကို စစ်ပါ။ ကိုက်ညီသော NO_PROXY စည်းမျဉ်းက ပရောက်စီကို ကျော်နိုင်သည်။ စာလုံးအသေးပုံစံများနှင့် အပြိုင်သတ်မှတ်ချက်များလည်း အရေးပါသည်။ Unix ဆန်သော shell အတွက် ဤ loop သည် အကောင့်ဝင်အချက်အလက် ပါနိုင်သည့် တန်ဖိုးများကို မထုတ်ဘဲ ရှိမရှိသာ အကြောင်းကြားသည်—

for name in http_proxy HTTP_PROXY https_proxy HTTPS_PROXY all_proxy ALL_PROXY no_proxy NO_PROXY; do
  if printenv "$name" >/dev/null; then
    printf '%s is set\n' "$name"
  fi
done

စာရင်းပါသတ်မှတ်ချက်များကို စက်တွင်းစစ်ဆေးပါ။ တစ်ခုခု ပြန်ပေါ်လာလျှင် စတင်ပေးသော shell၊ service၊ IDE၊ container သို့မဟုတ် CI configuration ကို စစ်ပါ။ ရှိနေခြင်းက ဖြစ်နိုင်သော input များကို ဖော်ပြသော်လည်း မည်သည့်တန်ဖိုးက ဦးစားပေးခံရသည်ကို မဖော်ပြပါ။

request တစ်ခုကို ထိုပရောက်စီရွေးချယ်မှုများမှ သီးခြားခွဲရန် endpoint နှင့် ဗလာ bypass စာရင်း နှစ်ခုလုံး ပေးပါ—

curl --proxy http://127.0.0.1:8080 --noproxy '' --connect-timeout 5 --max-time 15 --verbose https://example.com/

တိုက်ရိုက်ချိတ်ဆက်ခွင့်ရှိလျှင် နှိုင်းယှဉ်ရန်—

curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/

ဤ command များသည် ဆက်ခံထားသော လမ်းကြောင်းနှင့် ချိတ်ဆက်မှုပျက်ကွက်ခြင်းကို ခွဲခြားပေးသည်။ ပတ်ဝန်းကျင် setting များ ထပ်မပြောင်းမီ ပရောက်စီစမ်းသပ်မှုရလဒ်ကို အဆင့်လိုက်ဖတ်ပါ။ curl ၏ ကိန်းရှင်စည်းမျဉ်းများကို curl တွင် သုံးပါ။ အက်ပ်၏ ကိုယ်ပိုင် runtime သည် ပရောက်စီများကို အခြားနည်းဖြင့် ရှာဖွေပြီး ပေါင်းစပ်နိုင်သည်။

ဆက်စပ်ဆောင်းပါးများ