Load Bulancing သည်ဆာဗာများစွာသို့အသွားအလာကိုဖြန့်ဝေခြင်းဖြင့်သင်၏လျှောက်လွှာ၏စွမ်းဆောင်ရည်နှင့်ရရှိမှုကိုတိုးမြှင့်ခြင်းနှင့်ရရှိခြင်းဖြစ်သည်။ Nginx သည်မဲရုံ, IP Hashings အပါအ 0 င်တောင်းဆိုမှုကိုအသွားအလာကိုကိုင်တွယ်ရန်မတူညီသော algorithms ကိုအသုံးပြုသည်။
(1) Robin round round : ဒါက Nginx ရဲ့ default load load လုပ်ခြင်းဆိုင်ရာမူဝါဒကိုသတ်မှတ်ထားပြီး server ရဲ့အမိန့်မှာတောင်းဆိုမှုများကိုခွဲဝေချထားပေးသည်။
(2) IP Hash : ဤပေါ်လစီသည် 0 န်ဆောင်မှုခံယူသူ IP address အပေါ် အခြေခံ. တောင်းဆိုထားသောပစ်မှတ်ဆာဗာကိုဆုံးဖြတ်ပြီး IP အတွက်တောင်းဆိုမှုကိုတစ်ခုတည်းသောဆာဗာတွင်အမြဲတမ်းလုပ်ဆောင်သည်ကိုသေချာစေသည်။
(3) အနည်းဆုံးဆက်သွယ်မှု - ဤပေါ်လစီသည်ဆာဗာသို့လက်ရှိဆက်သွယ်မှုနိမ့်ဆုံးဆက်သွယ်မှုဖြင့်တောင်းဆိုမှုများကိုသတ်မှတ်သည်။
ဒီမှာရိုးရှင်းတဲ့ Nginx Load Balancing configuration ဥပမာတစ်ခု။
http { အထက်ပြန် {{ ဆာဗာ backend1.Expigame.com; ဆာဗာ backend2.example.com; ဆာဗာ backend3.example.com; } ဆာဗာ { နားထောင် 80 နားထောင်ပါ။ တည်နေရာ / { proxy_pass http: // backend; } } }
ဤပြင်ဆင်မှုတွင်ကျွန်ုပ်တို့သည် backend server သုံးဆာဗာသုံးဆာဗာသုံးဆာဗာသုံးခုပါ 0 င်သည့်အထက်ပိုင်းအဖုံးကိုသတ်မှတ်ပြီး proxy_pass ညွှန်ကြားချက်မှတဆင့် backend server သို့ပို့ရန်တောင်းဆိုခြင်းကိုကြိုတင်သတ်မှတ်ထားသည်။
သဘာဝဘေးအန္တရာယ်ပြန်လည်ထူထောင်ရေးအစီအစဉ်သည်ဆာဗာပျက်နေသည့်အခါစနစ်သည် 0 န်ဆောင်မှုပေးနိုင်ကြောင်းသေချာစေသည်။ Nginx Load Balancing ကိုအသုံးပြုခြင်းသည်အောက်ပါနည်းလမ်းများဖြင့်ဘေးအန္တရာယ်ပြန်လည်ထူထောင်ရေးရရှိနိုင်သည်။
(1) ကျန်းမာရေးစစ်ဆေးမှု - Nginx သည် backend server ၏ကျန်းမာရေးအခြေအနေကိုပုံမှန်စစ်ဆေးနိုင်သည်။ အကယ်. ဆာဗာတစ်ခုသည်အမှားတစ်ခုကိုမတုံ့ပြန်ပါက Nginx သည်အခြားကျန်းမာသောဆာဗာများသို့အသွားအလာကိုအလိုအလျောက်ရှေ့သို့အလိုအလျောက်ရှေ့ဆက်သွားမည်ဖြစ်သည်။
ဤတွင်ကျန်းမာရေးစစ်ဆေးမှုကိုပြင်ဆင်ခြင်း၏ဥပမာတစ်ခုဖြစ်သည်။
http { အထက်ပြန် {{ ဆာဗာ backend1.xample.com Max_fails = 2 FaiL_Timeout = 30s; ဆာဗာ backend2.exame.com Max_FAils = 2 FaiL_Timeout = 30s; ဆာဗာ backend3.Example.com Max_FAils = 2 FaiL_Timeout = 30s; Check Interval = 3000 မြင့်တက် = 2 ကျဆုံးခြင်း = 5 အချိန်ကုန် = 1000; Check_Http_send "Head / Check HTTP / 1.0"; Check_Http_expect_alive http_2xx http_3xx; } ဆာဗာ { နားထောင် 80 နားထောင်ပါ။ တည်နေရာ / { proxy_pass http: // backend; } } }
ဒီ configuration မှာ backend server တစ်ခုချင်းစီအတွက်အများဆုံးပျက်ကွက်မှု (Max_FAils) နှင့်ကျရှုံးမှုအချိန် (fail_tilout) ကိုသတ်မှတ်သည်။ ဆာဗာတစ်ခုသည်ကြိုတင်သတ်မှတ်ထားသောအကြိမ်အရေအတွက်ထက်ပိုမိုများပြားလာသည်နှင့်အမျှမအောင်မြင်သောအခါ Nginx သည်၎င်းကိုမရနိုင်ပါ။
(2) backup server : မူလဆာဗာများမရရှိနိုင်ပါက Nginx သည်ကြိုတင်သတ်မှတ်ထားသော backup server သို့ပို့ဆောင်လိမ့်မည်။
Backup server ကို configure လုပ်ရန်ဥပမာတစ်ခု -
http { အထက်ပြန် {{ ဆာဗာ backend1.xploss.com backup; ဆာဗာ backend2.example.com; ဆာဗာ backend3.example.com; } ဆာဗာ { နားထောင် 80 နားထောင်ပါ။ တည်နေရာ / { proxy_pass http: // backend; } } }
ဤဥပမာတွင် backend1.xplos.com ကို backup server အဖြစ် configure လုပ်ထားသည်။
Nginx Configuration စီမံခန့်ခွဲမှုစီမံခန့်ခွဲမှုစီမံခန့်ခွဲမှု, အလိုအလျောက်ကိရိယာများနှင့် scripts များသည် configuration files များကိုအလိုအလျောက်ထုတ်လုပ်ရန်နှင့်မွမ်းမံရန်ကူညီနိုင်သည်။ ဤတွင်ဘုံအလိုအလျောက်နည်းလမ်းနှစ်ခုရှိသည်။
(1) Nginx Plus : Nginx Plus သည်တရားဝင်ကူးသန်းရောင်းဝယ်ရေးလုပ်ငန်းစီမံခန့်ခွဲမှု, အမှားရှာဖွေခြင်း, အနှောက်အယှက်ဖြစ်စေခြင်း,
(2) Luka scripts ကိုအသုံးပြုခြင်း - Nginx သည် configuration ကိုအလိုအလျောက်ပြုလုပ်ရန်ပြောင်းလွယ်ပြင်လွယ်ရှိသောနည်းလမ်းတစ်ခုကိုပေးထားသော Nginx အထောက်အပံ့ပေးသည်။
Nginx Configuration ကိုထုတ်လုပ်ရန် Luka Script ကိုအသုံးပြုခြင်း၏ဥပမာတစ်ခုမှာဤတွင်ဖြစ်သည်။
- generate_backend.lua ဒေသခံ backend_server = { "Backend1.xplosage.com", "Backend2.xploss.com", "Backend3.Expjampampy.com" } ဒေသခံအထက်ပိုင်း = "အထက်ပြန် backend {\ n" I, Ipiens တွင်ဆာဗာ (backend_server) လုပ်ပါ အထက်မှ = အထက် .. "ဆာဗာ" .. ဆာဗာ .. ဆာဗာ .. "; \ n" အဆုံး အထက် = အထက် = အထက် .. "} \ n" ပုံနှိပ် (အထက်)
ဤဥပမာတွင် Lua Script သည် backend server သုံးဆာဗာသုံးစီးပါသည့်အထက်ပိုင်းအဖုံးကိုထုတ်ပေးသည်။
သင်သည် script ကို execute လုပ်နိုင်ပြီးအောက်ပါ command မှတစ်ဆင့် configuration file ကိုထုတ်လုပ်နိုင်သည်။
$ lua generate_backend.lua> nginx.cf
ကျိုးကြောင်းဆီလျော်သော configuration နှင့်အလိုအလျောက်စီမံခန့်ခွဲမှုအားဖြင့် Nginx ၏ Load ၏ Balancing function သည်လျှောက်လွှာစွမ်းဆောင်ရည်ကိုတိုးတက်စေရုံသာမကစနစ်၏ဘေးအန္တရာယ်ပြန်လည်ထူထောင်ရေးစွမ်းရည်ကိုမြှင့်တင်ပေးနိုင်သည်။