Pasirinkimas tarp „Apache“ ir „NGINX“ jūsų žiniatinklio prieglobos poreikiams

Norėdami pradėti nuo visiškai naujo interneto projekto, jums tikrai reikia tik dviejų dalykų: prieglobos teikėjo ir HTTP („HyperText Transfer Protocol“) serverio. Debesų tiekėjai, tokie kaip „Amazon Web Services“ ir „Microsoft Azure“, siūlo platų platformos parinkčių variantą, kad atitiktų jūsų svetainės dydžio ir greičio reikalavimus. Kai prisiregistruojate prie debesies pagrindinio kompiuterio, galite pasirinkti, kurį HTTP serverį naudoti virtualizuotoje techninėje įrangoje.


HTTP serveris yra atsakingas už žiniatinklio užklausų priėmimą iš jūsų svetainės lankytojų ir tada atsako į jų naršyklę pateikdamas reikiamą turinį. Pvz., Pagrindinėje žiniatinklio užklausoje gali būti prašoma HTML teksto turinio ir susietų vaizdų. HTTP serveris pateiks žiniatinklio atsakymą, kurį gali suprasti ir pateikti tokios naršyklės kaip „Google Chrome“ ar „Mozilla Firefox“.

Kalbant apie HTTP serverius, dabartinėje aplinkoje dominuoja du sprendimai: „Apace“ ir NGINX (tariama kaip „Engine X“). Skaitykite toliau, kad sužinotumėte abiejų pagrindus ir kaip jie palyginami vienas su kitu architektūros, atlikimo ir kitų kategorijų prasme.

„Apache“ pagrindai

„Apache“ žiniatinklio serverio sprendimas buvo naudojamas nuo dešimtojo dešimtmečio vidurio. Atsižvelgiant į programinės įrangos ilgaamžiškumą ir stabilumą, ji išlieka viena populiariausių svetainių prieglobos galimybių. Tai yra pagrindinė „LAMP“ kūrimo paketo dalis, kurią naudoja įvairaus dydžio komandos dinaminėms programoms diegti internete. Kiti LAMP kamino elementai yra „Linux“ (operacinė sistema), „MySQL“ (duomenų bazė) ir PHP (serverio pusės scenarijai)..

„Apache“ yra siūlomas kaip nemokamas atvirojo kodo programinės įrangos paketas. Jį valdo ir plėtoja „Apache“ programinės įrangos fondas. Kai 1990 m. Pasirodė pasaulinis žiniatinklis, „Apache“ buvo numatytasis serverio sprendimas daugumai svetainių. Jis buvo sukurtas atsižvelgiant į paprastumą ir, nors tai leidžia užtikrinti lankstumą ir mastelį, „Apache“ išpopuliarėjo tuo metu, kai interneto srauto lygis buvo daug mažesnis nei dabar..

NGINX pagrindai

„NGINX“ žiniatinklio serverio sprendimas pirmą kartą buvo išleistas 2002 m. Jį sukūrė vienas sistemų administratorius Rusijoje ir po dvejų metų tapo atvirojo kodo bendruomenės dalimi. „NGINX“ dizainas yra orientuotas į greitį ir našumą – dvi sritis, kuriose kai kurie mano, kad trūksta „Apache“. Tiesą sakant, NGINX projektas iš pradžių kilo dėl C10K viešojo iššūkio, kurio metu kūrėjai paprašė suprojektuoti HTTP sprendimą, galintį aptarnauti 10000 vienu metu dirbančių vartotojų pastoviu našumo lygiu..

Per pastarąjį dešimtmetį NGINX populiarumas išaugo, ypač tarp pradedančiųjų, kuriems reikia sparčiai tobulinti savo techninę įrangą. Tačiau paprastai manoma, kad NGINX yra sunkiau nustatyti ir integruoti nei „Apache“.

Architektūros sumetimai

„Apache“ programinės įrangos paketą sudaro kelių apdorojimo modulių rinkinys (žinomas kaip MPM), kurie leidžia serverio administratoriui nustatyti, kaip jų HTTP sprendimas turėtų tvarkyti užklausas. Šis architektūros tipas suteikia didelį lankstumą ir pritaikymą.

Pats paprasčiausias „Apache“ modulis yra „mpm_prefork“. Ji veikia vieno gijos logika, kai kiekvienas serverio procesas vienu metu tvarko vieną žiniatinklio užklausą. Tai yra rekomenduojamas modulis interneto projektams, pagrįstiems PHP scenarijų kalba. Kitas „Apache“ modulis yra „mpm_worker“, kuris palaiko keletą gijų tuo pačiu metu. Tai padės „Apache“ būti veiksmingesniems ir keičiamiems. Paskutinis pirminis „Apache“ modulis „mpm_event“ veikia panašiai kaip „mpm_worker“, tačiau prideda geresnį palaikymo palaikymo ryšį, o tai reikalinga daugeliui šiuolaikinių žiniatinklio programų..

NGINX architektūros požiūriu tikrai išsiskiria iš „Apache“. Jis grindžiamas įvykiais paremto operacijos, o ne procesų ar gijų, idėja. Tai reiškia, kad vienas NGINX darbuotojas vienu metu gali tvarkyti tūkstančius HTTP jungčių.

NGINX remiasi kilpų sistema, leidžiančia darbuotojams greitai pasiimti naujas užklausas kiekvieną kartą, kai suaktyvėja įvykis. Įvykiai apdorojami asinchroniškai, tai reiškia, kad jiems nereikia laukti, kol kiti įvykiai bus paskirstyti iš eilės.

Turinio tvarkymas

Šiomis dienomis žiniatinklio turinys skirstomas į vieną iš dviejų kategorijų: statinį ar dinaminį. Statinis turinys apima bet ką tinklalapyje, kuris išlieka pastovus, nesvarbu, kaip svetainė naudojama. Pavyzdžiui, įmonės logotipas svetainės viršuje yra statinio turinio dalis. Kita vertus, dinaminis turinys, valdomas scenarijų kalbomis, tokiomis kaip PHP, keičiasi atsižvelgiant į vartotojo seansą ar kitus kintamuosius. El. Pašto, bankininkystės ir socialiniai tinklai yra pagrįsti dinamišku turiniu, kad vartotojams būtų rodomi jų individualūs duomenys.

„Apache“ gali teikti statinį turinį tik pagal vieną giją, todėl NGINX yra patrauklesnis sprendimas interneto projektams, kuriems reikalingas didelis statinio turinio kiekis, greitai pristatytas. Tačiau kalbant apie dinamišką turinį, „Apache“ siūlo tam tikrų pranašumų. Jis lengvai integruojamas su PHP ir gali įterpti scenarijų procesorių tiesiai į HTTP darbuotoją. Pagrindiniame NGINX programinės įrangos pakete nėra dinaminio turinio pateikimo palaikymo, todėl turėsite pridėti išorinį procesorių prie savo programinės įrangos kamino, kad galėtumėte palaikyti.

Našumo palyginimai

Išoriniams jūsų svetainės lankytojams nebus svarbu, kokį HTTP serverį naudojate pagrindinėje programoje. Jiems rūpi tik greitai ir patikimai pasiekti jūsų turinį. Dėl šios priežasties našumas turėtų būti pagrindinė metrika, į kurią reikia atsižvelgti vertinant „Apache“ ir „NGINX“ kaip žiniatinklio prieglobos parinktis.

Dėl įvykiais paremtos architektūros NGINX paprastai laikomas greičiausiu HTTP sprendimu. Jis vykdomas naudojant minimalius išteklius, net laikui bėgant didėjant interneto srautui. Dėl to sunaudojama mažai atminties ir procesoriaus, o padidėjus apkrovai, „Apache“ gali reikėti daugiau aparatinės įrangos.

Įgyvendinimo paprastumas

Įdiegus žiniatinklio serveryje kaip programinės įrangos LAMP kamino dalį, „Apache HTTP“ pagrindinį kompiuterį yra neįtikėtinai paprasta konfigūruoti ir paleisti. Daugeliui administratorių nereikės modifikuoti daugialypio apdorojimo modulio nustatymų. Dauguma „Apache“ tinkinimų įvyks katalogų lygyje, vadinamuose .htaccess failuose.

Šie maži teksto elementai leidžia parašyti taisykles ir nurodymus, kaip HTTP serveris turėtų tvarkyti tam tikro tipo užklausas. Pvz., Galite įjungti URL perrašymą, kad konkretus domeno žiniatinklio adresas įkeltų išteklius iš kitos vietos. Tai dažnai naudojama socialinės žiniasklaidos svetainėse, kur URL pabaigoje rodomas „/ username“.

NGINX nepalaiko .htaccess failų ar kitos konfigūracijos katalogų lygiu. Tai padaro užklausų apdorojimą greitesnį ir saugesnį, tačiau vis tiek riboja sistemos administratoriaus valdymą.

Suderinamumas ir palaikymas

Paprastai HTTP serveriai veikia UNIX pagrindu veikiančiose operacinėse sistemose, ypač atvirojo kodo „Linux“ platformose. Taip yra dėl greičio, nes UNIX laikoma veiksmingiausia operacine sistema. „Apache“ ir „NGINX“ galima įdiegti populiariuose „Linux“ paskirstymuose, tokiuose kaip „Ubuntu“ ar „BSD“.

„Apache“ taip pat siūlo visišką „Microsoft Windows Server“ operacinės sistemos palaikymą. NGINX galima sukonfigūruoti taip pat, kad jie veiktų ir „Windows“, tačiau paprastai laikomi ne tokiais pat stabiliais. Jei jūsų organizacija išimtinai valdo „Windows“ savo interneto serveriuose, logiškas pasirinkimas bus „Apache“.

„Apache“ turi patikimą internetinės dokumentacijos portalą, kuriame yra išleidimo pastabos, informaciniai vadovai, vartotojo vadovai ir mokomosios priemonės, padėsiančios įdiegti „Apache“ debesies aplinkoje ir pradėti naudoti ją žiniatinklio programoms. NGINX siūlo panašaus tipo dokumentų saugyklą, apimančią pagrindinę konfigūraciją, taip pat išsamesnį kūrimo vadovą.

Santrauka

„Apache“ ir „NGINX“ yra labai populiarūs HTTP serverio sprendimai šiuolaikiniame šiuolaikiniame debesų kompiuterijos pasaulyje. Dauguma geriausių prieglobos įmonių Kanadoje naudoja „Apache“ ir „NGINX“.

Įdėkite bet kurį iš savo plėtros paketų yra protingas pasirinkimas, nes jie užtikrins stabilų našumą ir patikimumą.

Jei greitis yra jūsų pagrindinis prioritetas ir jūsų svetainėje bus didelis statinio turinio kiekis, tada NGINX gali būti geriausias pasirinkimas. Tai taip pat tampa geriausiu pasirinkimu tarp plėtros grupių, kuriančių mikroservisų architektūrą su daugybe posistemių, sąveikaujančių tarpusavyje. Kita vertus, mažiems kūrėjams ar naujokams gali būti lengviau prilipti prie „Apache“, nes juos lengviau nustatyti ir iš anksto sukonfigūruoti naudojant trečiųjų šalių programinės įrangos paketus, tokius kaip LAMP.

Reikia atsiminti vieną dalyką – nebūtinai turite pasirinkti tarp „Apache“ ir „NGINX“ ir pamiršti kitą. Tiesą sakant, šie du sprendimai yra labai dažnai naudojami kartu, kad būtų galima suteikti geriausią įmanomą žiniatinklio prieglobos patirtį. Kai NGINX yra nustatytas kaip pradinis žiniatinklio tarpinis serveris, užklausos gali būti greitai apdorojamos ir siunčiamos „Apache“ darbuotojui programos pabaigoje. Iš ten „Apache“ gali integruotis su PHP ar kita scenarijų kalba, kad parengtų žiniatinklio atsakymą ir grąžintų jį į NGINX sluoksnį.

Pasirinkdami HTTP serverio sprendimą būtinai atlikite savo tyrimus. Jūsų pasirinkta sistema taps jūsų svetainės ar programos stuburo dalimi ir turės lemiamos reikšmės kasdieninei jūsų vartotojų patirčiai.

Tau taip pat gali patikti:

  • Geriausias interneto priegloba
  • Geriausias svetainių kūrėjas

Nuorodos ir įvaizdžio kreditai:

  • Nginx.com
  • ESDS.co.in
  • TutorialsPoint.com
  • NTU.edu.sg
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

About the author

Adblock
detector