Apache & Nginx. Seotud ühe kettiga

Kuidas on Timewebis rakendatud Apache & Nginx sidet

Paljude ettevõtete jaoks on Nginx + Apache + PHP väga tüüpiline ja levinud kombinatsioon, ning Timeweb ei ole siin erand. Siiski võib olla huvitav ja kasulik mõista, kuidas see täpselt toimib.

Apache & Nginx. Üksteisega seotud

Sellise kombinatsiooni kasutamine on kindlasti dikteeritud meie klientide vajadustest. Nginx ja Apache mängivad kumbki erilist rolli, lahendades kindlaid ülesandeid.

Peamised seaded Apache teostatakse Apache konfiguratsioonifailides, samas kui kliendilehe seadistused toimuvad läbi faili .htaccess. .htaccess on konfiguratsioonifail, kus klient saab iseseisvalt määrata veebiserveri reeglid ja käitumise. Selline seadistus kehtib konkreetse saidi kohta. Näiteks saavad kasutajad Apache'i funktsionaalsuse abil muuta töörežiimi ühe PHP versiooni raames mod_php-st mod_cgi-le; seadistada ümbersuunamisi, SEO optimeerimist, sõbralikke URL-e, teatud limiite PHP jaoks.

Nginx kasutatakse proksiserverina liikluse suunamiseks Apache'ile ja nagu veebiserver staatilise sisu edastamiseks. Samuti oleme Nginx jaoks välja töötanud turvamoodulid, mis kaitsevad meie kasutajate andmeid, näiteks jagades juurdepääsuõigusi.

Kujutame ette, et mõni kasutaja siseneb meie kliendi veebisaidile. Esiteks jõuab kasutaja Nginx'ile, mis edastab staatilise sisu. See toimub hetkega. Seejärel, kui asi jõuab PHP laadimiseni, suunab Nginx päringu Apache'i. Ja Apache koos PHP'ga genereerib dünaamilise sisu.

Apache ja Nginx koostöö eripärad Timewebis

Meie virtuaalses hostimises on rakendatud kaks peamist Apache ja Nginx töörežiimi: Shared ja Dedicated.

Shared režiim

Seda režiimi kasutab enamik kasutajaid. Selle eripära on lihtsus ja ressursitõhusus: Shared-režiim kasutab vähem ressursse, seetõttu on ka selle hind madalam. Selle režiimi kohaselt töötab serveris üks Nginx, mis teenindab kõiki kasutaja päringuid, ning mitu Apache'i eksemplari.

Shared režiimi on pikka aega täiustatud: aeglaselt oleme parandanud puudusi. Mugav on see, et seda saab teha ilma lähtekoodi kohandamata.

Apache & Nginx. Üksteisega seotud
Shared režiim

Dedicated režiim

Dedicated nõuab rohkem ressursse, mistõttu on selle hind kõrgem klientidele. Dedicated skeemi puhul käivitatakse iga kliendi jaoks oma, eraldi Apache. Ressursid on siin broneeritud kliendi jaoks, nad on eraldatud eksklusiivselt. Kuidas see töötab: serveris on mitu PHP versiooni. Toetame versioone 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4. Nii käivitatakse iga PHP versiooniga oma Apache.

Apache & Nginx. Üksteisega seotud
Dedicated skeem

Safe zone. Nginxi tsoonide seadistamine

Varem kasutasime Nginxis palju jagatud mälu tsoone (zone) — üks serveri plokk ühe domeeni jaoks. Selline seadistus nõuab suurt hulka ressursse, kuna iga veebisaidi jaoks luuakse eraldi tsoon. Ent Nginxi seadistustes on enamik veebisaite ühesugused, seega on võimalik neid ühe tsooni alla viia, kasutades direktiivi map moodulis ngx_http_map_module, mis võimaldab määrata vastavused. Näiteks on meil tsooni mall, kuhu peame varustama muutujad: tee saidile, PHP versiooni, kasutaja. Nii kiirenes Nginxi konfiguratsiooni lugemine, st reloading.

Sarnane seadistus säästis palju ressursse ja kiirendas Nginxi tööd.

Reload ei õnnestu!

Shared-schemas oleme elimineerinud Apache taaskäivitamise vajaduse, kui muudame saitide seadeid. Varem, kui üks klient soovis lisada domeeni või muuta PHP versiooni, nõudis see Apache'i kohustuslikku taaskäivitamist, mis põhjustas viivitusi vastustes ja mõjutas saitide tööd negatiivselt.

Oleme taaskäitamised elimineerinud dünaamiliste konfiguratsioonide loomisega. Tänu mpm-itk (Apache moodul), käib iga protsess eraldi kasutaja alt, mis tõstab turvalisuse taset. See meetod võimaldab edastada Nginx'ist Apache2-sse kasutaja ja tema document_root'i andmed. Nii ei sisalda Apache veebisaitide konfiguratsiooni, vaid saadab need dünaamiliselt ja taaskäivitamisi ei ole enam vaja.

Apache & Nginx. Üksteisega seotud
Shared sch ema konfiguratsioon

Aga kuidas on Dockeriga?

Paljud ettevõtted on üle läinud konteineritele põhinevale süsteemile. Timeweb kaalub praegu sellist üleminekut. Muidugi, igas lahenduses saab leida nii plusse kui miinuseid.

Kuigi konteinerite süsteem pakub vaieldamatuid eeliseid, pakutakse kasutajale vähem ressursse. Timewebis, tänu kirjeldatud hostimismudelile, ei ole kasutajal mälu piiranguid. Ta saab rohkem ressursse kui konteineris. Lisaks võib kasutajal olla üles laaditud rohkem Apache mooduleid.

Timeweb toetab umbes 500 000 veebisaiti. Me kanname suurt vastutust ega tee kiireid, põhjendamatuid muudatusi keerulises arhitektuuris. Apache & Nginx kombinatsioon on usaldusväärne ja ajas tõestatud. Omalt poolt püüame saavutada maksimaalset jõudlust ainulaadsete konfiguratsioonidega.

Suurte veebisaitide kvaliteetse ja kiire toimimise jaoks on vajalik kasutada Apache ja Nginx-i mallipõhist ja dünaamilist konfiguratsiooni. See võimaldab lihtsalt ja kiiresti hallata suurt arvu sarnaseid servereid.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster