NGINX HTTP ပို့ဆောင်မှုလမ်းကြောင်းရှိ ကုဒ်ပြုလုပ်ထားသော လမ်းကြောင်းများကို ထိန်းသိမ်းခြင်း
ပို့ဆောင်မှုစာချုပ်သည် မူရင်းလမ်းကြောင်းနှင့် မေးခွန်းလိုအပ်ပါက request_uri ကို အသုံးပြုပြီး လက်ရှိ ဦးတည်ရာ အတည်ပြုစစ်ဆေးမှုကို ထိန်းသိမ်းပါ။
$uri မှ တည်ဆောက်ထားသော လမ်းကြောင်းသည် ကလိုင်းယင့် ပေးထားသည့်လမ်းကြောင်းနှင့် မတူညီသော လမ်းကြောင်းကို ပို့နိုင်သည်။ http://service.example/files/a%2Fb?view=raw အတွက် escape ပြုလုပ်ထားသော slash သည် ထိုမူရင်းစာလုံးပေါင်းအမျိုးအစား၏ အစိတ်အပိုင်းဖြစ်သည်။
| ကိန်းရှင် | ကိုယ်စားပြုမှု |
|---|---|
| $uri | လက်ရှိ ပုံမှန်ပြုလုပ်ထားသော URI ဖြစ်ပြီး အတွင်းပိုင်း လုပ်ဆောင်မှုအတွင်း ပြောင်းလဲနိုင်သည် |
| $request_uri | မူရင်း တောင်းဆိုမှု URI ဖြစ်ပြီး ၎င်း၏ မေးခွန်း အချက်အလက်များ အပါအဝင် |
ဦးတည်ရာ အခွင့်အာဏာကို ရွေးချယ်ပြီး စစ်ဆေးပြီးဖြစ်သော လက်ရှိ HTTP ပို့ဆောင်မှု ပရောက်ဆီ ဖွဲ့စည်းမှုတွင် မူရင်းလမ်းကြောင်းနှင့် မေးခွန်းကို ဤသို့ ထိန်းသိမ်းနိုင်သည်။
proxy_pass http://$http_host$request_uri;$http_host ဤဖွဲ့စည်းမှုတွင် ရွေးချယ်ထားသော Host ခေါင်းစီး အခွင့်အာဏာကို ပေးသည်။ နားထောင်သူ၏ ကလိုင်းယင့် ကန့်သတ်ချက်များ၊ ဦးတည်ရာ မူဝါဒနှင့် အမည်ဖြေရှင်းမှု ဖွဲ့စည်းမှုကို ထိန်းသိမ်းပါ။
$uri$is_args$args ကို ဤဖော်ပြချက်ဖြင့် အစားထိုးခြင်းသည် ပို့သည့် ကိုယ်စားပြုမှုကို ပြောင်းလဲစေသည်။ ယခင်က ပုံမှန်ပြုလုပ်ထားသော လမ်းကြောင်းနှင့် လက်ရှိ အချက်အလက်များကို အသုံးပြုသည်။ အဆုံးမှတ် စာချုပ်အရ ရွေးချယ်ပါ၊ အထူးသဖြင့် escape ပြုလုပ်ထားသော ခြားနားမှုများ အရေးကြီးသောအခါ သို့မဟုတ် လက်မှတ်သည် မူရင်းပစ်မှတ်ကို လွှမ်းခြုံသောအခါ။ ရည်ရွယ်ချက်ရှိရှိ လမ်းကြောင်းပြန်ရေးခြင်းတွင် ကွဲပြားသော လိုအပ်ချက် ရှိသည်။
ဤသည် မြင်နိုင်သော HTTP တောင်းဆိုမှုအတွက် သက်ဆိုင်သည်။ HTTPS CONNECT ဥမင်သည် နောက်ပိုင်း တောင်းဆိုမှုကို TLS အတွင်းတွင် သယ်ဆောင်ပြီး ၎င်း၏ ကိုယ်ပိုင် ပံ့ပိုးထားသော ကိုင်တွယ်မှု လိုအပ်သည်။