လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Nginx Load ၏အသေးစိတ်ရှင်းပြချက်နှင့်သဘာဝဘေးပြန်လည်ထူထောင်ရေးဖြေရှင်းနည်းများ

Nginx Load ၏အသေးစိတ်ရှင်းပြချက်နှင့်သဘာဝဘေးပြန်လည်ထူထောင်ရေးဖြေရှင်းနည်းများ

M66 2025-07-03

အခြေခံနိယာမများနှင့် Load Balancing ၏ configuration ကို

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 လုပ်ထားသည်။

အလိုအလျောက် configuration ကို

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 သည်လျှောက်လွှာစွမ်းဆောင်ရည်ကိုတိုးတက်စေရုံသာမကစနစ်၏ဘေးအန္တရာယ်ပြန်လည်ထူထောင်ရေးစွမ်းရည်ကိုမြှင့်တင်ပေးနိုင်သည်။