Apache & Nginx. On seotud ühe ahela kaudu

Kuidas on Apache ja Nginx ühendatud Timewebis

Paljudele ettevõtetele on Nginx + Apache + PHP väga tüüpiline ja levinud kombinatsioon ning Timeweb ei ole erand. Siiski on huvitav ja kasulik aru saada, kuidas see täpselt teostatud on.

Apache & Nginx. On seotud ühe ahelaga

Selle kombinatsiooni kasutamine on loomulikult tingitud meie klientide vajadustest. Nginx ja Apache mängivad mõlemad erilist rolli, igaühel on oma ülesanne.

Peamised seaded Apache teostatakse Apache enda konfiguratsioonifailides, samas kui kliendile kuuluvate veebisaitide seaded tehakse läbi .htaccess-fail.htaccess on konfiguratsioonifail, milles klient saab iseseisvalt seadistada veebiserveri reegleid ja käitumist. Need seaded kehtivad konkreetselt tema veebisaidi kohta. Näiteks, tänu Apache'ile saavad kasutajad muuta töörežiime ühe PHP versiooni raames mod_php-st mod_cgi-le; võimalik on seadistada ümbersuunamisi, SEO optimeerimist, mugavaid URL-e ja teatud limite PHP-le.

Nginx kasutatakse proksiserverina liikluse suunamiseks Apache'ile ja kui veebiserveriks staatiliste sisu edastamiseks. Samuti oleme Nginxile välja töötanud turvaharud, mis kaitsevad meie kasutajate andmeid, näiteks jagavad juurdepääsuõigusi.

Kujutame ette, et mõni kasutaja siseneb meie kliendi veebisaidile. Esiteks satub kasutaja Nginxile, mis edastab staatilist sisu. See toimub hetkega. Seejärel, kui on aeg PHP laadimiseks, suunab Nginx päringu Apache'ile. Ja Apache koos PHP-ga genereerib dünaamilist sisu.

Apache ja Nginx ühendamise eripärad Timewebis

Meie virtuaalses hostimises on Rakendatud 2 peamist skeemi Apache ja Nginxiga: Jagatud ja Pühendatud.

Jagatud skeem

Seda skeemi kasutatakse enamikus kasutajates. Selle eripära on lihtsus ja ressursikasutuse efektiivsus: jagatud skeem kasutab vähem ressursse, seega on selle hind ka madalam. Selle skeemi kohaselt on serveris käivitatud üks Nginx, mis teenindab kõiki kasutaja päringuid, ja mitu Apache'i eksemplari.

Jagatud skeem on pikka aega täiustatud: järk-järgult oleme parandanud puudusi. Mugav on, et seda saab teha ilma algkoodi muutmiseta.

Apache & Nginx. On seotud ühe ahelaga
Jagatud skeem

Pühendatud skeem

Dedicated nõuab rohkem ressursse, seega on selle hind klientidele kallim. Dedicated-skeemis tõstetakse igale kliendile oma, eraldi Apache. Ressursid reserveeritakse kliendi jaoks ja need eraldatakse eksklusiivselt. Kuidas see töötab: serveris on mitmed PHP versioonid. Toetame versioone 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4. Nii käivitatakse iga PHP versiooni jaoks oma Apache.

Apache & Nginx. On seotud ühe ahelaga
Dedicated skeem

Ohutu tsoon. Nginxi tsoonide seadistamine

Varem kasutasime Nginxile paljusid jagatud mälu tsoone (zone) — üks serveri plokk ühe domeeni jaoks. Selline seadistus nõuab suurt hulka ressursse, kuna iga veebilehe jaoks luuakse eraldi tsoon. Kuid Nginxi seadetes on enamik veebilehti sarnased, seega on võimalik need paigutada ühte tsoon, kasutades map direktiive moodulis ngx_http_map_module, mis võimaldavad määrata vastavusi. Näiteks on meil tsooni mall, kuhu peame edastama muutujaid: veebilehe tee, PHP versioon, kasutaja. Seega kiirenes Nginxi konfiguratsiooni uuendamine, see tähendab riloogimist.

Selline seadistus säästis märkimisväärselt operatiivmälu ning kiirendas Nginxi tööd.

Riloogimine ei õnnestu!

Shared skeemis oleme loobunud vajadusest Apacheit riloogida, kui veebilehtede seadetes leitakse muudatusi. Varem, kui üks klient soovis domeeni lisada või PHP versiooni muuta, oli vajalik Apache'i riloogimine, mis tekitas viivitusi vastustes ja halvas veebilehtede jõudlust.

Oleme riloogimisest vabastanud, luues dünaamilised konfiguratsioonid. Tänu mpm-itk Apache moodulile, toimub iga protsessi töötamine eraldi kasutaja alt, mis tõstab turvalisuse taset. Selline meetod võimaldab Nginxilt edastada Apache2-le andmeid kasutaja ja tema document_rooti kohta. Seega ei sisalda Apache veebilehtede konfiguratsiooni, ta saab need dünaamiliselt ja rilooge ei ole enam vaja.

Apache & Nginx. On seotud ühe ahelaga
Shared skeemi konfiguratsioon

Aga kuidas on Dockeriga?

Paljud ettevõtted on üle läinud konteineritele põhinevale süsteemile. Timeweb kaalub hetkel sellise ülemineku võimalust. Ilmselgelt on igas lahenduses nii plusse kui miinuseid.

Koos selliste vaieldamatute eeliste kõrval, pakub konteinerisüsteem kasutajale vähem ressursse. Timewebis ei ole kasutajal, tänu sellele hostimise tööpõhimõttele, mälukohta piirangut. Ta saab rohkem ressursse kui konteineris. Lisaks võib kasutajal olla laaditud rohkem Apache mooduleid.

Timeweb toetab umbes 500 000 veebilehte. Meie vastutus on suur ja me ei tee koheseid, põhjendamatuid muudatusi keerulises arhitektuuris. Apache & Nginx kooslus on usaldusväärne ja ajaga tõestatud. Meie omalt poolt püüame saavutada maksimaalset jõudlust unikaalsete konfiguratsioonide abil.

Paljude veebilehtede kvaliteetse ja kiire töö tagamiseks tuleb kasutada Apache ja Nginxi mallipõhist ja dünaamilist konfiguratsiooni. See võimaldab lihtsalt ja kiiresti hallata suurt arvu sarnaseid servereid.

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster