🐳⚜️ Proxy Server ဆိုတာ ဘာလဲ?
ပြီးခဲ့တဲ့ရက်က ကျွန်တော်တို့ REST API တွေအကြောင်း ပြောဖြစ်ခဲ့ကြပါတယ်။ API ဆိုတာ Server ရဲ့ Data logic တွေ ဘယ်လိုအလုပ်လုပ်မလဲဆိုတာ သတ်မှတ်ပေးတဲ့ Blueprint တစ်ခုဆိုရင်၊ Proxy Server ဆိုတာကတော့ အပြင်ကလာတဲ့ Request တွေနဲ့ ကိုယ့်ရဲ့ API Server ကြားမှာ ရပ်တည်ပေးနေတဲ့ “Traffic Controller” တစ်ယောက်ပဲ ဖြစ်ပါတယ်။
ရိုးရိုးရှင်းရှင်း ပြောရရင် Proxy ဆိုတာ Client (အသုံးပြုသူ) နဲ့ Target Server (သွားချင်တဲ့ Website) ကြားထဲမှာ ဝင်ရောက်ကြားခံပေးတဲ့ Intermediate Server တစ်ခုပါ။
ရိုးရိုးရှင်းရှင်း ပြောရရင် Proxy ဆိုတာ Client (အသုံးပြုသူ) နဲ့ Target Server (သွားချင်တဲ့ Website) ကြားထဲမှာ ဝင်ရောက်ကြားခံပေးတဲ့ Intermediate Server တစ်ခုပါ။
⚜️ Proxy ဘယ်လို အလုပ်လုပ်သလဲ?
ပုံမှန် Connection မျိုးမှာ Client က Server ဆီ တိုက်ရိုက်ချိတ်ဆက်ပေမဲ့ Proxy သုံးထားရင်တော့ အဆင့် (၂) ဆင့် ပြောင်းသွားပါတယ်။
- Request ပေးပို့ခြင်း – Client က Request ကို Proxy Server ဆီ အရင်ပို့ပါတယ်။
- ထပ်ဆင့်ပေးပို့ခြင်း – Proxy ကမှတစ်ဆင့် ၎င်းရဲ့ ကိုယ်ပိုင် IP Address ကို အသုံးပြုပြီး Target Server ဆီကို Request ကို Forward လုပ်ပေးပါတယ်။
- Response ပြန်ပို့ခြင်း – Server က ပြန်လာတဲ့ Data (Response) ကိုလည်း Proxy က အရင်လက်ခံပြီးမှ Client ဆီ ပြန်လည်ပေးပို့တာ ဖြစ်ပါတယ်။
⚜️ Proxy သုံးခြင်းရဲ့အဓိကအကျိုးကျေးဇူးများ
- Privacy (ကိုယ်ရေးအချက်အလက်လုံခြုံမှု) – Client ရဲ့ တကယ့် IP Address ကို Target Server က မသိနိုင်တော့ဘဲ Proxy IP ကိုသာ မြင်ရတဲ့အတွက် အသုံးပြုသူရဲ့ တည်နေရာနဲ့ Identity ကို ဖုံးကွယ်ပေးနိုင်ပါတယ်။
- Security (လုံခြုံရေး) – မလုံခြုံတဲ့ Website တွေကို ပိတ်ပင်ထားတာမျိုး ဒါမှမဟုတ် အန္တရာယ်ရှိတဲ့ Traffic တွေ Server ထဲမဝင်လာအောင် ရှေ့တန်းကနေ Filter လုပ်ပြီး တားဆီးပေးနိုင်ပါတယ်။
- Caching (မြန်နှုန်းမြှင့်တင်ခြင်း) – ခဏခဏ တောင်းဆိုလေ့ရှိတဲ့ Data တွေကို Proxy က သိမ်းဆည်း (Cache) ထားပေးပါတယ်။ နောက်တစ်ကြိမ် Request လာတဲ့အခါ Server ဆီအထိ သွားစရာမလိုဘဲ Proxy ကနေ တိုက်ရိုက်ပေးလိုက်တဲ့အတွက် ပိုမိုမြန်ဆန်လာပါတယ်။
⚜️🔰 Backend Development မှာ သိထားရမယ့် Proxy အမျိုးအစားများ
Developer တစ်ယောက်အနေနဲ့ Forward Proxy နဲ့ Reverse Proxy ရဲ့ ကွာခြားချက်ကို သေချာနားလည်ထားဖို့ လိုအပ်ပါတယ်။
- Forward Proxy (Client-Side Proxy)
ဒါက Client (အသုံးပြုသူ) ဘက်ကနေ ရပ်တည်ပေးတာပါ။ ဥပမာ - ရုံးလုပ်ငန်းသုံး Network တွေမှာ ဝန်ထမ်းတွေရဲ့ Internet အသုံးပြုမှုကို ထိန်းချုပ်ဖို့နဲ့ Security အတွက် သုံးပါတယ်။ Client က ဘယ်သူမှန်း Server က မသိအောင် လုပ်ပေးတာ ဖြစ်ပါတယ်။ - Reverse Proxy (Server-Side Proxy)
ဒါကတော့ Backend Developer တွေအတွက် အရေးအကြီးဆုံးအပိုင်းပါ။ Node.js ဒါမှမဟုတ် အခြား Web Server တွေရဲ့ ရှေ့ဆုံးမှာ Nginx သို့မဟုတ် Apache တို့ကို Reverse Proxy အဖြစ် ထားလေ့ရှိပါတယ်။ သူက အောက်ပါအတိုင်း အကူအညီပေးပါတယ် -- Load Balancing – Request တွေ အများကြီးဝင်လာရင် Server အများအပြားဆီကို ဝန်ခွဲဝေပေးပြီး Server မကျအောင် ထိန်းပေးပါတယ်။
- SSL Termination – HTTPS အတွက် Certificate တွေကို Reverse Proxy မှာပဲ သတ်မှတ်ပေးထားလို့ နောက်ကွယ်က Main Server က ပိုမိုပေါ့ပါးစွာ အလုပ်လုပ်နိုင်ပါတယ်။
- Security – API Server ရဲ့ တကယ့် IP နဲ့ Structure ကို အပြင်လူတွေ တိုက်ရိုက်မမြင်ရအောင် ကာကွယ်ပေးထားပါတယ်။
ဒါဆိုရင် Proxy Server အကြောင်းကို နားလည်သင့်သလောက်နားလည်သွားပြီလို့ ယူဆပါတယ်ခင်ဗျာ။
Author Name - Instructor Min Thu Khaing
Content Series - Journey with Moriarty
Author Name - Instructor Min Thu Khaing
Content Series - Journey with Moriarty