လွယ်လွယ်ပြောရရင် Reverse Proxy ဆိုတာ Website ရှေ့ကနေ တောင်းဆိုမှုတွေကို အရင်လက်ခံပြီး နောက်ကွယ်က Server အမှန်ဆီ လွှဲပေးတဲ့ ကြားခံတစ်ခုပါ။ User က minsithu.org ကို ဖွင့်လိုက်တဲ့အခါ တိုက်ရိုက် Server ကို မရောက်ဘူး။ အရင်ဆုံး Reverse Proxy ကို ရောက်တယ်၊ ပြီးမှ Proxy က Server အမှန်ဆီ လွှဲပေးတယ်။ Server ရဲ့ အဖြေကိုလည်း Proxy ကနေတစ်ဆင့် ပြန်ပို့ပေးတာပါ။

ကျွန်တော် ဒါကို ဟိုတယ်က Reception နဲ့ ဥပမာပေးချင်တယ်။ ဧည့်သည်က ဟိုတယ်ကို လာတဲ့အခါ အခန်းထဲ တိုက်ရိုက် သွားလို့ မရဘူး။ Reception မှာ အရင် ရပ်ရတယ်။ Receptionist က ဧည့်သည်ရဲ့ အမည်၊ Booking ကို စစ်တယ်၊ ပြီးမှ အခန်းနံပါတ်ကို ပြောပေးတယ်။ ဧည့်သည်က ဟိုတယ်ပိုင်ရှင် ဘယ်သူလဲ၊ အခန်းဘယ်နားလဲ ဆိုတာ မသိဘူး။ Reception ကပဲ အကုန်စီစဉ်ပေးတယ်။ Reverse Proxy ကလည်း အဲဒီလိုပါပဲ။ User က Server အမှန်ကို တိုက်ရိုက် မမြင်ရဘူး၊ Proxy ကပဲ ကြားက စီစဉ်ပေးတယ်။

Reverse Proxy က ဘာတွေ လုပ်ပေးတာလဲ?

Load Balancing — Server ၃ လုံး ရှိရင် တောင်းဆိုမှုတွေကို ၃ လုံးမှာ မျှဝေပေးတယ်။ Server တစ်လုံး ကျသွားရင်လည်း ကျန်တဲ့ Server တွေဆီ လွှဲပေးလို့ Website မကျပါဘူး။
SSL လက်မှတ် စီမံတာ — HTTPS ရဲ့ လက်မှတ်စစ်ဆေးမှုကို Proxy က လုပ်ပေးတယ်။ နောက်ကွယ်က Server တွေက HTTP ရိုးရိုးနဲ့ ပြောလို့ရတယ်။ လက်မှတ်သက်တမ်းတိုးတာလည်း Proxy တစ်နေရာတည်းမှာပဲ လုပ်ရတယ်။
Caching — ခဏခဏ တောင်းတဲ့ ပုံတွေ၊ စာမျက်နှာတွေကို Proxy က သိမ်းထားတယ်။ နောက်တစ်ခါ တောင်းရင် Server ဆီ သွားစရာမလိုဘဲ Proxy က တိုက်ရိုက် ပြန်ပေးလို့ Website ပိုမြန်ပါတယ်။
လုံခြုံရေး — Server အမှန်ရဲ့ IP Address ကို ဖုံးထားပေးတယ်။ Hacker က Server ကို တိုက်ရိုက် တိုက်ခိုက်လို့ မရဘူး။ Proxy က မကောင်းတဲ့ တောင်းဆိုမှုတွေကို အရင် စစ်ပြီး ပိတ်ပေးပါတယ်။
Compression — ဖိုင်တွေကို ချုံ့ပြီး ပို့ပေးလို့ Internet သုံးစွဲမှု သက်သာပါတယ်။

နာမည်ကြီးတဲ့ Reverse Proxy Tool တွေ

Nginx — အခုခေတ် အသုံးအများဆုံးပါ။ မြန်တယ်၊ ပေါ့တယ်၊ Setting လုပ်ရလွယ်တယ်။ minsithu.org လို WordPress Site တွေရဲ့ ရှေ့မှာလည်း Nginx ခဏခဏ ရှိပါတယ်။
Cloudflare — Reverse Proxy ကို Service အဖြစ် ပေးတာပါ။ DNS ကို Cloudflare ဆီ ညွှန်လိုက်တာနဲ့ ကမ္ဘာတစ်ဝှမ်းက Server တွေက ကိုယ့် Website ကို ကာကွယ်ပေးပါတယ်။ Free Plan တောင် တော်တော်လေး ကောင်းပါတယ်။
Apache — အဟောင်းကြီးပေမယ့် ယုံကြည်စိတ်ချရပါတယ်။ .htaccess နဲ့ Setting လုပ်လို့ ရတာက အားသာချက်ပါ။
HAProxy — Load Balancing မှာ အထူးကောင်းပါတယ်။ Traffic အများကြီးရှိတဲ့ Site တွေ သုံးပါတယ်။

Forward Proxy နဲ့ ဘာကွာလဲ?

Forward Proxy ဆိုတာ User ဘက်က သုံးတဲ့ Proxy ပါ။ VPN က Forward Proxy နဲ့ ဆင်ပါတယ်။ User က VPN Server ကို ချိတ်ပြီး VPN ကနေတစ်ဆင့် Internet ကို သွားတယ်။ Website က User ရဲ့ IP အမှန်ကို မမြင်ရဘူး။

Reverse Proxy ကကျတော့ Server ဘက်က သုံးတဲ့ Proxy ပါ။ User က Website ကို တိုက်ရိုက် ဖွင့်တယ်လို့ ထင်ပေမယ့် တကယ်တော့ Proxy ကို ရောက်နေတာပါ။ Server ရဲ့ IP အမှန်ကို User က မမြင်ရဘူး။

အတိုချုပ်ပြောရရင် Forward Proxy က User ကို ဖုံးတယ်၊ Reverse Proxy က Server ကို ဖုံးတယ်။ နှစ်ခုလုံး ကြားခံပါပဲ၊ ဘယ်ဘက်မှာ ရပ်နေလဲဆိုတာပဲ ကွာတာပါ။

ကိုယ်တိုင် စမ်းကြည့်ချင်ရင်

Nginx ကို ကိုယ့်ကွန်ပျူတာမှာ စမ်းကြည့်လို့ရပါတယ်။ Config ဖိုင်ထဲမှာ ဒီလို နှစ်ကြောင်းလောက် ရေးရုံပါပဲ။


location / {
    proxy_pass http://localhost:3000;
}

ဒီ Setting က “Website ကို လာတဲ့ တောင်းဆိုမှုတွေကို localhost:3000 မှာ Run နေတဲ့ App ဆီ လွှဲပေးပါ” လို့ ပြောတာပါ။ User က Port 3000 အကြောင်း ဘာမှ မသိဘူး။ သူ မြင်တာက Website တစ်ခုတည်းပါ။

Reverse Proxy က Website တွေရဲ့ နောက်ကွယ်မှာ တိတ်တိတ်လေး အလုပ်လုပ်နေတဲ့ ဝန်ထမ်းကောင်းတစ်ယောက်ပါ။ မြန်အောင်လည်း ကူတယ်၊ လုံခြုံအောင်လည်း ကာပေးတယ်၊ Server ကျလည်း မသိအောင် ဖုံးပေးတယ်။ ကိုယ် Website ဖွင့်တိုင်း မြန်မြန်ပွင့်နေရင် နောက်ကွယ်မှာ Reverse Proxy တစ်ခု အလုပ်လုပ်နေလို့ ဖြစ်နိုင်ပါတယ်။ 🙂

—

Avatar photo
Min SiThu
@itsmeminsithu

Software Engineer & Tech Content Creator

View all posts