သင်၏ CDN တည်ဆောက်ခြင်းနှင့် ပြင်ဆင်ခြင်း

Content Delivery Networks (CDNs) ကို static element များတင်ခြင်းကို အရှိန်မြှင့်ရန်အတွက် အဓိကအားဖြင့် ဝဘ်ဆိုက်များနှင့် အပလီကေးရှင်းများတွင် အသုံးပြုပါသည်။ ကွဲပြားသော ပထဝီဝင်ဒေသများရှိ CDN ဆာဗာများပေါ်တွင် ဖိုင်များကို သိမ်းဆည်းထားခြင်းကြောင့် ဖြစ်ပေါ်လာခြင်းဖြစ်သည်။ CDN မှတစ်ဆင့် ဒေတာတောင်းခံခြင်းဖြင့် သုံးစွဲသူသည် ၎င်းကို အနီးဆုံးဆာဗာမှ လက်ခံရရှိမည်ဖြစ်သည်။

အကြောင်းအရာပေးပို့ခြင်းကွန်ရက်အားလုံး၏ လုပ်ဆောင်ချက်နှင့် လုပ်ဆောင်နိုင်စွမ်းသည် ခန့်မှန်းခြေအားဖြင့် တူညီပါသည်။ ဖိုင်တစ်ခုကို ဒေါင်းလုဒ်လုပ်ရန် တောင်းဆိုချက်တစ်ခုကို လက်ခံရရှိပြီးနောက် CDN ဆာဗာသည် ၎င်းအား မူရင်းဆာဗာမှ တစ်ကြိမ်ယူ၍ သတ်မှတ်ကာလတစ်ခုအတွင်း ၎င်းကို သိမ်းဆည်းထားပြီး တစ်ချိန်တည်းတွင် ၎င်းကို သုံးစွဲသူအား ပေးဆောင်သည်။ နောက်ဆက်တွဲတောင်းဆိုမှုများအားလုံးကို ကက်ရှ်မှ အဖြေပေးပါသည်။ CDN များအားလုံးတွင် ဖိုင်များကိုကြိုတင်တင်ရန်၊ ကက်ရှ်ကိုရှင်းလင်းရန်၊ သက်တမ်းကုန်ဆုံးရက်ကို သတ်မှတ်ရန်နှင့် အခြားအရာများအတွက် ရွေးချယ်စရာများရှိသည်။

အကြောင်းရင်းတစ်ခု သို့မဟုတ် အခြားတစ်ခုကြောင့် သင်သည် သင်၏ကိုယ်ပိုင်အကြောင်းအရာပေးပို့ခြင်းကွန်ရက်ကို စုစည်းရန်လိုအပ်ပြီး နောက်စက်ဘီးတပ်ဆင်ခြင်းဆိုင်ရာ လမ်းညွှန်ချက်များကို ကျွန်ုပ်တို့အတွက် အထောက်အကူဖြစ်ပါစေ။

သင်၏ CDN တည်ဆောက်ခြင်းနှင့် ပြင်ဆင်ခြင်း
source: pikisuperstar - www.freepik.com မှ ဖန်တီးထားသော Infographic vector

သင့်ကိုယ်ပိုင် CDN လိုအပ်သည့်အခါ

သင့်ကိုယ်ပိုင် CDN လုပ်ဆောင်ခြင်းသည် အဓိပ္ပာယ်ရှိစေမည့် ကိစ္စများကို သုံးသပ်ကြည့်ပါ-

  • ငွေချွေတာလိုသောဆန္ဒရှိသောအခါ၊ စျေးမကြီးသော CDNs များကိုအသုံးပြုသည့်တိုင် ကုန်ကျစရိတ်များသည်။ BunnyCDN တစ်လလျှင် ဒေါ်လာ ရာဂဏန်းအထိ ရှိသည်။
  • ဆာဗာနှင့် ချန်နယ်အိမ်နီးနားချင်းများမပါဘဲ အမြဲတမ်း cache သို့မဟုတ် cache တစ်ခုကို ရယူလိုပါက
  • CDN ဝန်ဆောင်မှုများသည် သင်လိုအပ်သော ဒေသတွင် ရှိနေသည့်နေရာများ မရှိပါ။
  • အထူးအကြောင်းအရာပေးပို့ခြင်း ဆက်တင်များ လိုအပ်သည်။
  • ထုတ်လုပ်မှုဆာဗာကို အသုံးပြုသူများနှင့် ပိုမိုနီးကပ်စွာထားရှိခြင်းဖြင့် တက်ကြွသောအကြောင်းအရာများပေးပို့မှုကို အရှိန်မြှင့်လိုပါသည်။
  • ပြင်ပအဖွဲ့အစည်း CDN ​​ဝန်ဆောင်မှုသည် အသုံးပြုသူအပြုအမူဆိုင်ရာ အချက်အလက်များကို တရားမဝင်စုဆောင်းခြင်း သို့မဟုတ် အသုံးပြုခြင်း (ဟယ်လို-GDPR ကိုက်ညီမှုမရှိသော ဝန်ဆောင်မှုများ) သို့မဟုတ် အခြားတရားမဝင်လုပ်ဆောင်မှုများတွင် ပါဝင်ခြင်းအတွက် စိုးရိမ်စရာရှိပါသည်။

အခြားကိစ္စများတွင်၊ ရှိပြီးသား အဆင်သင့်လုပ်ထားသော ဖြေရှင်းချက်များကို အသုံးပြုခြင်းသည် ပို၍သင့်လျော်ပါသည်။

သင်ဘာကိုစတင်ရန်လိုအပ်သနည်း။

သင့်တွင် ကိုယ်ပိုင်အုပ်ချုပ်ခွင့်ရစနစ် (AS) ရှိလျှင် အံ့သြစရာကောင်းပါသည်။ ၎င်းနှင့်အတူ၊ သင်သည်တူညီသော IP ကိုဆာဗာများစွာနှင့်သတ်မှတ်နိုင်သည်။ ဤညွှန်ကြားချက်အရ ကွန်ရက်အဆင့်တွင်၊ သုံးစွဲသူများကို အနီးဆုံးသို့ ညွှန်ကြားပါ။ /24 address block ဖြင့်ပင် content delivery network တစ်ခုကို တည်ဆောက်နိုင်သည်ဟု ဆိုရကျိုးနပ်ပါသည်။ အချို့သော ဆာဗာဝန်ဆောင်မှုပေးသူများသည် ၎င်းတို့အတွက်ရရှိနိုင်သော ဒေသအားလုံးတွင် အသုံးပြုရန်အတွက် ကြေငြာချက်တစ်ခုပြုလုပ်ရန် သင့်အား ခွင့်ပြုပါသည်။

အကယ်၍ သင်သည် IP လိပ်စာများပိတ်ဆို့ခြင်းကို ပျော်ရွှင်စွာပိုင်ဆိုင်သူမဟုတ်ပါက၊ ရိုးရှင်းသော CDN ကို run ရန် သင်လိုအပ်လိမ့်မည်-

  • ဒိုမိန်းအမည် သို့မဟုတ် ဒိုမိန်းခွဲ
  • မတူညီသော ဒေသများတွင် အနည်းဆုံး ဆာဗာနှစ်ခု။ ဆာဗာသည် သီးသန့်ဖြစ်စေ သို့မဟုတ် အတုဖြစ်စေနိုင်သည်။
  • geoDNS ကိရိယာ။ ၎င်းနှင့်အတူ၊ အသုံးပြုသူသည် ဒိုမိန်းကို လိပ်မူပြီးပါက အနီးဆုံးဆာဗာသို့ ညွှန်ကြားမည်ဖြစ်သည်။

ဒိုမိန်းတစ်ခုကို မှတ်ပုံတင်ပြီး ဆာဗာများကို မှာယူပါ။

ဒိုမိန်းမှတ်ပုံတင်ခြင်းဖြင့် အရာအားလုံးသည် ရိုးရှင်းသည် - ကျွန်ုပ်တို့သည် မည်သည့်ဇုန်တွင်မဆို မှတ်ပုံတင်အရာရှိနှင့် မှတ်ပုံတင်ပါသည်။ ဥပမာအားဖြင့် CDN တစ်ခုအတွက် subdomain တစ်ခုကိုလည်း သုံးနိုင်သည်။ cdn.domainname.com. တကယ်တော့၊ ငါတို့ရဲ့ဥပမာမှာ၊ ငါတို့ဒီလိုလုပ်မယ်။

ဆာဗာများကို မှာယူခြင်းအတွက် ၎င်းတို့ကို သင့်အသုံးပြုသူ ပရိသတ်တည်ရှိရာ ဒေသများနှင့် နိုင်ငံများတွင် ငှားရမ်းသင့်ပါသည်။ ပရောဂျက်သည် တိုက်ကြီးတိုက်နယ်ဖြစ်နေပါက၊ ကမ္ဘာတစ်ဝှမ်းရှိ ဆာဗာများကို တစ်ကြိမ်တည်းပေးဆောင်သည့် hosting ဝန်ဆောင်မှုပေးသူများကို ရွေးချယ်ရန် အဆင်ပြေသည်။ ဥပမာများ- OVH, ငှားရမ်းမှုကွန်ရက် и 100TB - သီးခြားဆာဗာများအတွက်၊ Vultr и DigitalOcean - virtual cloud* အတွက်။

ကျွန်ုပ်တို့၏ သီးသန့် CDN အတွက်၊ မတူညီသော တိုက်ကြီးများရှိ virtual server 3 ခုကို မှာယူပါမည်။ မှာ Vultr server ပေါ်မှာ $5/လ ငါတို့ရလိမ့်မယ်။ 25GB SSD ကို နေရာများနှင့် 1TB လမ်းကြောင်း. ထည့်သွင်းသည့်အခါ၊ နောက်ဆုံးထွက် Debian ကိုရွေးချယ်ပါ။ ကျွန်ုပ်တို့၏ဆာဗာများ-

သင်၏ CDN တည်ဆောက်ခြင်းနှင့် ပြင်ဆင်ခြင်း Frankfurt, ip: 199.247.18.199

သင်၏ CDN တည်ဆောက်ခြင်းနှင့် ပြင်ဆင်ခြင်း ချီကာဂို, ip: 149.28.121.123

သင်၏ CDN တည်ဆောက်ခြင်းနှင့် ပြင်ဆင်ခြင်း Сингапур, ip: 157.230.240.216

*Vultr နှင့် DigitalOcean သည် ငွေပေးချေမှုနည်းလမ်းကို ထည့်သွင်းပြီးနောက် ဆောင်းပါးရှိလင့်ခ်များမှတစ်ဆင့် စာရင်းသွင်းသော သုံးစွဲသူများအား $100 ခရက်ဒစ်ပေးမည်ဟု ကတိပြုပါသည်။ စာရေးသူသည် ဤအချက်မှ ချီးမွမ်းမှု သေးသေးလေးကိုလည်း ရရှိခဲ့ပြီး ယခု သူ့အတွက် အလွန်အရေးကြီးပါသည်။ ကျေးဇူးပြု၍ နားလည်ပေးပါ။

GeoDNS ကို စနစ်ထည့်သွင်းခြင်း။

ဒိုမိန်း သို့မဟုတ် CDN ခွဲဒိုမိန်းကို ဝင်ရောက်သည့်အခါ အသုံးပြုသူကို အလိုရှိသော (အနီးစပ်ဆုံး) ဆာဗာသို့ ညွှန်ကြားနိုင်ရန်၊ ကျွန်ုပ်တို့သည် geoDNS လုပ်ဆောင်ချက်ပါရှိသော DNS ဆာဗာတစ်ခု လိုအပ်ပါသည်။

geoDNS ၏ နိယာမနှင့် လုပ်ဆောင်ချက်မှာ အောက်ပါအတိုင်းဖြစ်သည်။

  1. DNS တောင်းဆိုမှုကို ပေးပို့သော ကလိုင်းယင့်၏ IP သို့မဟုတ် ကလိုင်းယင့်တောင်းဆိုမှုအား လုပ်ဆောင်ရာတွင် အသုံးပြုသည့် ထပ်တူထပ်မျှသော DNS ဆာဗာ၏ IP ကို ​​သတ်မှတ်သည်။ ထိုသို့သော recursive ဆာဗာများသည် များသောအားဖြင့် ဝန်ဆောင်မှုပေးသူများ၏ DNS များဖြစ်သည်။
  2. သုံးစွဲသူ၏ IP သည် ၎င်း၏နိုင်ငံ သို့မဟုတ် ဒေသကို အသိအမှတ်ပြုသည်။ ယင်းအတွက် GeoIP ဒေတာဘေ့စ်များကို ယနေ့ခေတ်များစွာရှိနေပြီဖြစ်သည်။ ကောင်းတာတွေရှိတယ်။ အခမဲ့ရွေးချယ်မှုများ.
  3. client ၏တည်နေရာပေါ် မူတည်၍ အနီးဆုံး CDN ​​ဆာဗာ၏ IP လိပ်စာကိုပေးသည်။

geoDNS လုပ်ဆောင်ချက်ဖြင့် DNS server ဖြစ်နိုင်ပါသည်။ သင်ကိုယ်တိုင် စုစည်းပါ။သို့သော် ကမ္ဘာတစ်ဝှမ်းရှိ DNS ဆာဗာများနှင့် ကွန်ရက်တစ်ခုဖြင့် အဆင်သင့်လုပ်ထားသော ဖြေရှင်းချက်များကို အသုံးပြုခြင်းက ပိုကောင်းပါတယ်။ Anycast ဖြစ်သည် box မှ

  • CloudDNS от $9.95/လ, GeoDNS tariff , default အနေနဲ့ DNS Failover တစ်ခုရှိပါတယ်။
  • Zilore от $25/လDNS Failover ကို ဖွင့်ထားသည်။
  • Amazon လမ်းကြောင်း 53 от $35/လ အသားတင် 50M ပထဝီတောင်းဆိုချက်များအတွက်။ DNS Failover ကို သီးခြားစီ ကောက်ခံပါသည်။
  • DNS လုပ်ရန်လွယ်ကူသည် от $125/လDNS Failovers 10 ယောက်ရှိပါတယ်။
  • CloudFlare"Geo Steering" အင်္ဂါရပ်ကို လုပ်ငန်းအစီအစဉ်များတွင် ရနိုင်ပါသည်။

geoDNS ကို မှာယူသည့်အခါ၊ သင်သည် အကောက်ခွန်တွင် ပါဝင်သော တောင်းဆိုမှု အရေအတွက်ကို အာရုံစိုက်သင့်ပြီး ဒိုမိန်းသို့ အမှန်တကယ် တောင်းဆိုမှု အရေအတွက်သည် မျှော်မှန်းချက်ထက် အဆများစွာ ကျော်လွန်နိုင်သည်ကို သတိရပါ။ သန်းပေါင်းများစွာသော ပင့်ကူများ၊ စကန်ဖတ်စက်များ၊ spammers များနှင့် အခြားနတ်ဆိုးများသည် မမောမပန်း အလုပ်လုပ်ကြသည်။

DNS ဝန်ဆောင်မှုအားလုံးနီးပါးတွင် CDN တစ်ခုတည်ဆောက်ရန်အတွက် မရှိမဖြစ်လိုအပ်သောဝန်ဆောင်မှုတစ်ခုပါဝင်သည် - DNS Failover။ ၎င်း၏အကူအညီဖြင့်၊ သင်သည် သင်၏ဆာဗာများ၏ လည်ပတ်မှုကို စောင့်ကြည့်ခြင်းအား သတ်မှတ်နိုင်ပြီး၊ အသက်လက္ခဏာများ မရှိတော့ပါက၊ DNS တုံ့ပြန်မှုများတွင် အရန်တစ်ခုဖြင့် အလုပ်မလုပ်သော ဆာဗာ၏လိပ်စာကို အလိုအလျောက် အစားထိုးနိုင်သည်။

ကျွန်ုပ်တို့၏ CDN တည်ဆောက်ရန်အတွက် ကျွန်ုပ်တို့ အသုံးပြုပါမည်။ CloudDNS, GeoDNS အကောက်ခွန်။

သင့်ဒိုမိန်းကို သတ်မှတ်ပေးခြင်းဖြင့် သင့်ကိုယ်ပိုင်အကောင့်တွင် DNS ဇုန်အသစ်တစ်ခု ထည့်ကြပါစို့။ အကယ်၍ ကျွန်ုပ်တို့သည် ဒိုမိန်းခွဲတစ်ခုတွင် CDN တစ်ခုကို တည်ဆောက်နေပြီး ပင်မဒိုမိန်းကို အသုံးပြုနေပြီဆိုလျှင်၊ ဇုန်ကို ပေါင်းထည့်ပြီးနောက် ချက်ချင်းပင်၊ ရှိပြီးသား အလုပ်လုပ်နေသော DNS မှတ်တမ်းများကို ထည့်ရန် မမေ့ပါနှင့်။ နောက်တစ်ဆင့်မှာ CDN domain/subdomain အတွက် A-records အများအပြားကို ဖန်တီးရန်ဖြစ်ပြီး တစ်ခုစီသည် ကျွန်ုပ်တို့သတ်မှတ်ထားသော ဒေသအတွက် အသုံးချမည်ဖြစ်သည်။ တိုက်ကြီးများ သို့မဟုတ် နိုင်ငံများကို ဒေသများအဖြစ် သတ်မှတ်နိုင်သည်၊ ဒေသခွဲများသည် USA နှင့် Canada အတွက် ရနိုင်ပါသည်။

ကျွန်ုပ်တို့၏အခြေအနေတွင်၊ CDN သည် ဒိုမိန်းခွဲတစ်ခုပေါ်တွင် ပေါ်ထွန်းမည်ဖြစ်သည်။ cdn.sayt.in. ဇုန်တစ်ခုထည့်ခြင်းဖြင့် sayt.inဒိုမိန်းခွဲအတွက် ပထမဆုံး A-record ကို ဖန်တီးပြီး မြောက်အမေရိက အားလုံးကို ချီကာဂိုရှိ ဆာဗာသို့ ညွှန်ပြပါ-

သင်၏ CDN တည်ဆောက်ခြင်းနှင့် ပြင်ဆင်ခြင်း
မူရင်းဒေသများအတွက် ဝင်ခွင့်တစ်ခုဖန်တီးရန် သတိရကာ အခြားဒေသများအတွက် လုပ်ဆောင်ချက်ကို ပြန်လုပ်ကြပါစို့။ ဤသည်မှာ အဆုံးတွင် ဖြစ်ပျက်နေသည် ။

သင်၏ CDN တည်ဆောက်ခြင်းနှင့် ပြင်ဆင်ခြင်း

ဖန်သားပြင်ဓာတ်ပုံရှိ နောက်ဆုံးပုံသေထည့်သွင်းမှုမှာ သတ်မှတ်ထားသောမသတ်မှတ်ထားသောဒေသများအားလုံးကို (၎င်းတို့သည် ဥရောပ၊ အာဖရိက၊ ဂြိုလ်တုအင်တာနက်အသုံးပြုသူများ၊ စသည်ဖြင့်) Frankfurt ရှိ ဆာဗာသို့ ပို့လိုက်မည်ဖြစ်သည်။

၎င်းသည် အခြေခံ DNS စနစ်ထည့်သွင်းမှုကို ပြီးမြောက်စေသည်။ ဒိုမိန်းမှတ်ပုံတင်သူ၏ဝဘ်ဆိုဒ်သို့သွားကာ လက်ရှိဒိုမိန်း NS များကို ClouDNS မှထုတ်ပေးသည့်အရာများဖြင့် အစားထိုးရန် ကျန်ရှိနေပါသည်။ NSs များကို မွမ်းမံနေချိန်တွင်၊ ကျွန်ုပ်တို့သည် ဆာဗာများကို ပြင်ဆင်ပေးပါမည်။

SSL လက်မှတ်များ တပ်ဆင်ခြင်း။

ကျွန်ုပ်တို့၏ CDN သည် HTTPS ထက် အလုပ်လုပ်မည်ဖြစ်သောကြောင့် သင့်တွင် ဒိုမိန်း သို့မဟုတ် ဒိုမိန်းခွဲအတွက် SSL လက်မှတ်များ ရှိနှင့်ပြီးပါက ၎င်းတို့ကို ဆာဗာများအားလုံးသို့ အပ်လုဒ်လုပ်ပါ၊ ဥပမာ၊ လမ်းညွှန်သို့ အပ်လုဒ်လုပ်ပါ။ /etc/ssl/yourdomain/

လက်မှတ်များမရှိပါက၊ Let's Encrypt မှ အခမဲ့တစ်ခုရနိုင်သည်။ ဒီအတွက် ပြီးပြည့်စုံတယ်။ ACME Shellscript. ကလိုင်းယင့်သည် အဆင်ပြေပြီး စနစ်ထည့်သွင်းရန် လွယ်ကူပြီး အရေးအကြီးဆုံးမှာ၊ ၎င်းသည် သင့်အား ClouDNS API မှတစ်ဆင့် DNS ဖြင့် domain/subdomain တစ်ခုအား တရားဝင်အောင်ခွင့်ပြုထားသည်။

ကျွန်ုပ်တို့သည် acme.sh ကို ဆာဗာများအနက်မှ တစ်ခုသာ တပ်ဆင်ပါမည် - ဥရောပ 199.247.18.199 လက်မှတ်များကို အခြားသူများထံ ကူးယူသွားပါမည်။ ထည့်သွင်းရန်၊ လုပ်ဆောင်ရန်-

root@cdn:~# wget -O - https://get.acme.sh | bash; source ~/.bashrc

script ကိုထည့်သွင်းစဉ်အတွင်း ကျွန်ုပ်တို့၏ပါဝင်မှုမရှိဘဲ လက်မှတ်များထပ်မံသက်တမ်းတိုးရန်အတွက် CRON အလုပ်တစ်ခုဖန်တီးပါမည်။

လက်မှတ်ထုတ်ပေးသောအခါ၊ API ကိုအသုံးပြု၍ DNS ကိုအသုံးပြု၍ ဒိုမိန်းကို စစ်ဆေးမည်ဖြစ်သည်၊ ထို့ကြောင့် ပြန်လည်ရောင်းချသူ API မီနူးရှိ ClouDNS ကိုယ်ရေးကိုယ်တာအကောင့်တွင်၊ အသုံးပြုသူ API အသစ်တစ်ခုဖန်တီးပြီး ၎င်းအတွက် စကားဝှက်တစ်ခုသတ်မှတ်ရန် လိုအပ်ပါသည်။ စကားဝှက်ဖြင့် ရရှိလာသော auth-id ကို ဖိုင်တွင် ရေးသားပါမည်။ ~/.acme.sh/dnsapi/dns_cloudns.sh (ဖိုင်နှင့် မရောထွေးရပါ။ dns_clouddns.sh) ဤသည်မှာ မှတ်ချက်မပေးဘဲ တည်းဖြတ်ရန် လိုအပ်သော လိုင်းများဖြစ်သည်-

CLOUDNS_AUTH_ID=<auth-id>
CLOUDNS_AUTH_PASSWORD="<пароль>"

ယခု ကျွန်ုပ်တို့သည် SSL လက်မှတ်ကို တောင်းဆိုပါမည်။ cdn.sayt.in

root@cdn:~# acme.sh --issue --dns dns_cloudns -d cdn.sayt.in --reloadcmd "service nginx reload"

ရွေးချယ်မှုများတွင်၊ အနာဂတ်တွင်၊ နောင်တွင် လက်မှတ်တရားဝင်မှုကာလကို သက်တမ်းတိုးတိုင်း သက်တမ်းတိုးပြီးနောက်တွင် ဝဘ်ဆာဗာ ဖွဲ့စည်းမှုပုံစံကို အလိုအလျောက် ပြန်လည်စတင်ရန် အမိန့်ပေးထားပါသည်။

လက်မှတ်ရရှိရေး လုပ်ငန်းစဉ်တစ်ခုလုံးသည် 2 မိနစ်အထိ ကြာနိုင်ပြီး ၎င်းကို မနှောင့်ယှက်ပါနှင့်။ ဒိုမိန်းအတည်ပြုခြင်းဆိုင်ရာ အမှားအယွင်းတစ်ခု ဖြစ်ပေါ်ပါက၊ အမိန့်ကို ထပ်မံလုပ်ဆောင်ကြည့်ပါ။ အဆုံးတွင် လက်မှတ်များကို အပ်လုဒ်လုပ်ထားသည့်နေရာကို ကျွန်ုပ်တို့မြင်ရပါမည်-

သင်၏ CDN တည်ဆောက်ခြင်းနှင့် ပြင်ဆင်ခြင်း

ဤလမ်းကြောင်းများကို မှတ်သားထားပါ၊ အသိအမှတ်ပြုလက်မှတ်ကို အခြားဆာဗာများသို့ ကူးယူသည့်အခါ အပြင် ဝဘ်ဆာဗာဆက်တင်များတွင် ၎င်းတို့ကို သတ်မှတ်ပေးရပါမည်။ Nginx configs ကိုပြန်လည်စတင်ခြင်း၏အမှားကိုကျွန်ုပ်တို့ဂရုမစိုက်ပါ။

SSL အတွက်ကျွန်ုပ်တို့ကျန်ခဲ့သမျှသည် ဖိုင်များဆီသို့လမ်းကြောင်းကိုထိန်းသိမ်းထားစဉ်ရရှိထားသောလက်မှတ်ကိုအခြားဆာဗာနှစ်ခုသို့ကူးယူရန်ဖြစ်သည်။ ၎င်းတို့တစ်ခုစီတွင် တူညီသောလမ်းညွှန်ချက်များကို ဖန်တီးပြီး မိတ္တူတစ်ခုပြုလုပ်ကြပါစို့။

root@cdn:~# mkdir -p /root/.acme.sh/cdn.sayt.in/
root@cdn:~# scp -r root@199.247.18.199:/root/.acme.sh/cdn.sayt.in/* /root/.acme.sh/cdn.sayt.in/

လက်မှတ်များကို ပုံမှန် အပ်ဒိတ်လုပ်ရန်၊ အမိန့်ဖြင့် ဆာဗာနှစ်ခုလုံးတွင် နေ့စဉ် CRON အလုပ်တစ်ခု ဖန်တီးပါ-

scp -r root@199.247.18.199:/root/.acme.sh/cdn.sayt.in/* /root/.acme.sh/cdn.sayt.in/ && service nginx reload

ဤကိစ္စတွင်၊ အဝေးမှအရင်းအမြစ်ဆာဗာသို့ဝင်ရောက်ခွင့်ကို configure လုပ်ရမည်။ သော့အားဖြင့်, i.e. စကားဝှက်မထည့်ဘဲ။ အဲဒါကိုလုပ်ဖို့မမေ့ပါနဲ့။

Nginx ကို ထည့်သွင်းပြီး ပြင်ဆင်သတ်မှတ်ခြင်း။

တည်ငြိမ်သောအကြောင်းအရာကို ဆောင်ရွက်ပေးရန်အတွက်၊ ကျွန်ုပ်တို့သည် ကက်ရှ်ပရောက်စီဆာဗာအဖြစ် သတ်မှတ်ထားသော Nginx ကို အသုံးပြုပါမည်။ ပက်ကေ့ဂျ်စာရင်းများကို အပ်ဒိတ်လုပ်ပြီး ဆာဗာသုံးခုလုံးတွင် ထည့်သွင်းပါ။

root@cdn:~# apt update
root@cdn:~# apt install nginx

ပုံသေအစား၊ အောက်ဖော်ပြပါ spoiler မှ config ကိုအသုံးပြုသည်-
nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections 4096;
    multi_accept on;
}

http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    access_log off;
    error_log /var/log/nginx/error.log;

    gzip on;
    gzip_disable "msie6";
    gzip_comp_level 6;
    gzip_proxied any;
    gzip_vary on;
    gzip_types text/plain application/javascript text/javascript text/css application/json application/xml text/xml application/rss+xml;
    gunzip on;            

    proxy_temp_path    /var/cache/tmp;
    proxy_cache_path   /var/cache/cdn levels=1:2 keys_zone=cdn:64m max_size=20g inactive=7d;
    proxy_cache_bypass $http_x_update;

server {
  listen 443 ssl;
  server_name cdn.sayt.in;

  ssl_certificate /root/.acme.sh/cdn.sayt.in/cdn.sayt.in.cer;
  ssl_certificate_key /root/.acme.sh/cdn.sayt.in/cdn.sayt.in.key;

  location / {
    proxy_cache cdn;
    proxy_cache_key $uri$is_args$args;
    proxy_cache_valid 90d;
    proxy_pass https://sayt.in;
    }
  }
}

config တွင်တည်းဖြတ်ပါ

  • အများဆုံး_အရွယ်အစား — ရရှိနိုင်သော disk နေရာထက်မကျော်လွန်သော cache ၏အရွယ်အစား
  • မလှုပ်မရှား - မည်သူမျှဝင်ရောက်၍မရသော ကက်ရှ်ဒေတာများ၏ သိုလှောင်ချိန်
  • ssl_certificate и ssl_certificate_key - SSL လက်မှတ်နှင့် သော့ဖိုင်များဆီသို့ လမ်းကြောင်းများ
  • proxy_cache_valid - ကက်ရှ်ဒေတာ၏သိုလှောင်မှုအချိန်
  • proxy_pass — CDN မှ သိမ်းဆည်းရန်အတွက် ဖိုင်များကို တောင်းဆိုမည့် မူရင်းဆာဗာ၏လိပ်စာ။ ကျွန်ုပ်တို့၏ဥပမာတွင်၊ ဤအရာ sayt.in

သင်မြင်နိုင်သကဲ့သို့, အရာအားလုံးရိုးရှင်းပါသည်။ ညွှန်ကြားချက်များ၏ တူညီမှုကြောင့် သိမ်းဆည်းချိန်ကို သတ်မှတ်ရာတွင်သာ ခက်ခဲနိုင်သည်။ မလှုပ်မရှား и proxy_cache_valid. ကျွန်ုပ်တို့၏ဥပမာဖြင့် ၎င်းတို့ကို ခွဲခြမ်းစိတ်ဖြာကြည့်ကြပါစို့။ ဒါက ဘယ်အချိန်ဖြစ်မလဲ။ inactive=7d и proxy_cache_valid 90d:

  • အကယ်၍ တောင်းဆိုမှုအား 7 ရက်အတွင်း ထပ်ခါတလဲလဲ မလုပ်ပါက၊ ဤကာလပြီးနောက် ဒေတာများကို ကက်ရှ်မှ ဖျက်လိုက်ပါမည်။
  • တောင်းဆိုချက်ကို အနည်းဆုံး 7 ရက်လျှင် တစ်ကြိမ် ထပ်ခါတလဲလဲ ပြုလုပ်ပါက၊ ထို့နောက် ရက်ပေါင်း 90 အကြာတွင် ကက်ရှ်ရှိ ဒေတာကို အသုံးမပြုတော့ဟု ယူဆပြီး Nginx သည် ၎င်းကို နောက်တောင်းဆိုချက်ဖြင့် အပ်ဒိတ်လုပ်ကာ မူရင်းဆာဗာမှ ၎င်းကို ရယူသွားမည်ဖြစ်သည်။

တည်းဖြတ်ရန် ပြီးပါပြီ။ nginx.confဖွဲ့စည်းမှုပုံစံကို ပြန်လည်စတင်ပါ-

root@cdn:~# service nginx reload

ကျွန်ုပ်တို့၏ CDN အဆင်သင့်ဖြစ်နေပါပြီ။ $15/လ။ တိုက်ကြီးသုံးတိုက်နှင့် ယာဉ်ကြောအသွားအလာ 3 TB ရှိသည်- နေရာတစ်ခုစီတွင် 1 TB ရှိသည်။

CDN ၏အလုပ်စစ်ဆေးခြင်း။

မတူညီသောပထဝီဝင်တည်နေရာများမှကျွန်ုပ်တို့၏ CDN သို့ pings များကိုကြည့်ရှုကြပါစို့။ ဤအတွက် မည်သည့် ping ဝန်ဆောင်မှုမဆို အလုပ်ဖြစ်ပါမည်။

ပစ်လွှတ်သည့်အချက်
အိမ်ရှင်
IP
ပျမ်းမျှအချိန်၊ ms

ဂျာမနီ ဘာလင်
cdn.sayt.in
199.247.18.199
9.6

နယ်သာလန်၊ အမ်စတာဒမ်
cdn.sayt.in
199.247.18.199
10.1

ပြင်သစ် ပဲရစ်
cdn.sayt.in
199.247.18.199
16.3

ယူနိုက်တက်ကင်းဒမ်း၊ လန်ဒန်
cdn.sayt.in
199.247.18.199
14.9

ကနေဒါ၊ တိုရွန်တို
cdn.sayt.in
149.28.121.123
16.2

အမေရိကန်၊ ဆန်ဖရန်စစ္စကို
cdn.sayt.in
149.28.121.123
52.7

အမေရိကန်၊ Dallas
cdn.sayt.in
149.28.121.123
23.1

အမေရိကန်၊ ချီကာဂို
cdn.sayt.in
149.28.121.123
2.6

အမေရိကန်၊ နယူးယောက်
cdn.sayt.in
149.28.121.123
19.8

Сингапур
cdn.sayt.in
157.230.240.216
1.7

ဂျပန်တိုကျို
cdn.sayt.in
157.230.240.216
74.8

သြစတြေးလျ၊ ဆစ်ဒနီ
cdn.sayt.in
157.230.240.216
95.9

ရလဒ်တွေက ကောင်းတယ်။ ယခု ကျွန်ုပ်တို့သည် ပင်မဆိုက်၏ အမြစ်တွင် စမ်းသပ်ပုံတစ်ခုကို တင်ပါမည်။ test.jpg CDN မှတဆင့်၎င်း၏ဒေါင်းလုဒ်မြန်နှုန်းကိုစစ်ဆေးပါ။ ဟုဆိုသည်- လုပ်ထားသည်. အကြောင်းအရာကို လျင်မြန်စွာ ပေးပို့သည်။

CDN အမှတ်ပေါ်ရှိ cache ကိုရှင်းလင်းလိုပါက script လေးတစ်ခုရေးကြည့်ရအောင်။
purge.sh

#!/bin/bash
if [ -z "$1" ]
then
    echo "Purging all cache"
    rm -rf /var/cache/cdn/*
else
    echo "Purging $1"
    FILE=`echo -n "$1" | md5sum | awk '{print $1}'`
    FULLPATH=/var/cache/cdn/${FILE:31:1}/${FILE:29:2}/${FILE}
    rm -f "${FULLPATH}"
fi

ကက်ရှ်တစ်ခုလုံးကို ဖျက်ရန်၊ ၎င်းကို run ရုံဖြင့် သီးခြားဖိုင်ကို ဤကဲ့သို့ ရှင်းလင်းနိုင်သည်-

root@cdn:~# ./purge.sh /test.jpg

အစားကောက်ချက်၏

နောက်ဆုံးအနေနဲ့၊ အဲဒီအချိန်က ကျွန်တော့်ခေါင်းကို နာကျင်စေခဲ့တဲ့ ထွန်တုံးကို ချက်ချင်းကျော်တက်နိုင်ဖို့ အသုံးဝင်တဲ့ အကြံပြုချက်အချို့ကို ပေးချင်ပါတယ်။

  • CDN ၏ အမှားခံနိုင်ရည်ကို တိုးမြှင့်ရန်အတွက် ဆာဗာပြိုကွဲမှုဖြစ်စဉ်တွင် A မှတ်တမ်းကို လျင်မြန်စွာပြောင်းလဲရန် ကူညီပေးသည့် DNS Failover ကို ပြင်ဆင်သတ်မှတ်ရန် အကြံပြုထားသည်။ ၎င်းကို domain ၏ control panel DNS မှတ်တမ်းများတွင် လုပ်ဆောင်သည်။
  • ကျယ်ပြန့်သော ပထဝီဝင် လွှမ်းခြုံမှုရှိသော ဆိုက်များသည် CDN အများအပြား လိုအပ်မည်မှာ သေချာသော်လည်း ရူးသွပ်မှု မဖြစ်ပါစေနှင့်။ တည်နေရာ 6-7 တွင် ဆာဗာများထားရှိပါက အခပေး CDN ​​နှင့် နှိုင်းယှဉ်ပါက အသုံးပြုသူသည် ဥရောပ၊ မြောက်အမေရိက (အရှေ့ပိုင်း)၊ မြောက်အမေရိက (အနောက်)၊ စင်ကာပူ၊ သြစတြေးလျ၊ ဟောင်ကောင် သို့မဟုတ် ဂျပန်
  • တစ်ခါတစ်ရံတွင် hosters များသည် CDN ရည်ရွယ်ချက်များအတွက် ငှားထားသောဆာဗာများကို အသုံးပြုခွင့်မပြုပါ။ ထို့ကြောင့်၊ သင်သည် ဝန်ဆောင်မှုတစ်ခုအနေဖြင့် အကြောင်းအရာပေးပို့ခြင်းကွန်ရက်ကို ရုတ်တရက်အသုံးပြုရန် ဆုံးဖြတ်ပါက၊ hosting ဝန်ဆောင်မှုပေးသူ၏ စည်းမျဉ်းများကို ကြိုတင်ဖတ်ရန် မမေ့ပါနှင့်။
  • စူးစမ်းပါ။ ရေအောက်ဆက်သွယ်ရေးမြေပုံတိုက်ကြီးများကို မည်ကဲ့သို့ ချိတ်ဆက်ထားသည်ကို ကိုယ်စားပြုပြီး အကြောင်းအရာပေးပို့ခြင်းကွန်ရက်ကို တည်ဆောက်သည့်အခါ ၎င်းကို ထည့်သွင်းစဉ်းစားရန်
  • စစ်ဆေးကြည့်ပါ။ မတူညီသောနေရာများမှ pings သင့်ဆာဗာများသို့ ဤနည်းဖြင့် သင်သည် CDN အမှတ်များနှင့် အနီးစပ်ဆုံး ဒေသများကို မြင်နိုင်ပြီး GeoDNS ကို ပိုမိုမှန်ကန်စွာ ပြင်ဆင်သတ်မှတ်နိုင်သည်။
  • အလုပ်များပေါ်မူတည်၍ သီးခြား caching လိုအပ်ချက်များအတွက် Nginx ကို ကောင်းစွာချိန်ညှိရန်နှင့် ဆာဗာပေါ်ရှိ load ကိုထည့်သွင်းစဉ်းစားရန် အသုံးဝင်မည်ဖြစ်ပါသည်။ Nginx cache နှင့်ပတ်သက်သောဆောင်းပါးများသည်ဤတွင်ငါ့ကိုအများကြီးကူညီပေးခဲ့သည် - ဒီမှာ လေးလံသောဝန်များအောက်တွင် အလုပ်အရှိန်မြှင့်ခြင်း၊ ဒီမှာ и ဒီမှာ

source: www.habr.com