Apache & Nginx. Të lidhura nga një zinxhir

Si është realizuar lidhja Apache & Nginx në Timeweb

Për shumë kompani, Nginx + Apache + PHP është një lidhje shumë standarde dhe e përhapur, dhe Timeweb nuk është përjashtim. Megjithatë, të kuptosh se si saktësisht është realizuar mund të jetë interesante dhe e dobishme.

Apache & Nginx. Të lidhur nga një zinxhir

Përdorimi i një lidhjeje të tillë, padyshim, është i diktuar nga nevojat e klientëve tanë. Si Nginx, ashtu edhe Apache kanë role të veçanta, secili zgjidh një detyrë të caktuar.

Cilësimet kryesore Apache kryhen në skedarët e konfigurimit të Apache, dhe cilësimet për faqet e klientëve bëhen përmes skedarit .htaccess. .htaccess është një skedar konfigurimi, në të cilin klienti mund të përcaktojë vetë rregullat dhe sjelljen e serverit web. Këto cilësime do të jenë të lidhura specifikisht me faqen e tij. Për shembull, përmes funksionalitetit të Apache, përdoruesit mund të ndryshojnë modalitetin e punës në brendësi të një versioni PHP nga mod_php në mod_cgi; mund të konfigurojnë ridrejtimet, optimizimin për SEO, URL të përshtatshme, disa kufizime për PHP.

Nginx përdoret si një server proxy për të ridrejtuar trafikun tek Apache dhe si server web për të ofruar përmbajtje statike. Po ashtu, për Nginx kemi zhvilluar module sigurie që lejojnë mbrojtjen e të dhënave të përdoruesve tanë, për shembull, ndarjen e të drejtave të aksesit.

Përfytyroni se një përdorues hyn në faqen e klientit tonë. Së pari, përdoruesi shkon tek Nginx, i cili ofron përmbajtje statike. Kjo ndodh në mënyrë të menjëhershme. Më pas, kur vinte puna për ngarkimin e PHP, Nginx e ridrejton kërkesën tek Apache. Dhe Apache së bashku me PHP gjeneron përmbajtje dinamike.

Veçoritë e lidhjes Apache & Nginx në Timeweb

Në hostimin tonë virtual janë realizuar 2 skema kryesore të punës Apache & Nginx: Shared dhe Dedicated.

Skema Shared

Kjo skemë përdoret për shumicën e përdoruesve. Ajo karakterizohet nga thjeshtësia dhe kërkesa për burime: skema Shared përdor më pak burime, prandaj edhe tarifa e saj është më e ulët. Sipas kësaj skeme, në server është i instaluar një Nginx, i cili lejon shërbimin e të gjitha kërkesave nga përdoruesit, dhe disa kopje të Apache.

Skema Shared është përmirësuar për një kohë të gjatë: gradualisht kemi rregulluar gabimet. E dobishme është se ajo mund të realizohet pa nevojën për të ndryshuar kodin burimor.

Apache & Nginx. Të lidhur nga një zinxhir
skema Shared

Skema Dedicated

Dedicated kërkon më shumë burime, prandaj tarifa e saj është më e lartë për klientët. Në skemën Dedicated, për çdo klient ngrihet një Apache i veçantë. Burimet këtu rezervohen për klientin, ato ndahen ekskluzivisht. Si funksionon: në server ka disa versione PHP. Ne mbështesim versionet 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4. Kështu, për çdo version PHP ngrihet një Apache i vet.

Apache & Nginx. Të lidhur nga një zinxhir
skema Dedicated

Safe zone. Cilësimi i zonave në Nginx

Më parë, për Nginx kishim përdorur shumë zona memorie të ndarë (zone) — një bllok server për një domen. Kjo cilësim kërkon një sasi të madhe burimesh, pasi për çdo faqe krijohet një zonë e veçantë. Megjithatë, në cilësimet Nginx, shumica e faqeve janë të ngjashme, prandaj ato arrijnë të vendosen në një zonë përmes përdorimit të drejtimeve map në modulin ngx_http_map_module, të cilat lejojnë përcaktimin e përputhshmërisë. Për shembull, ne kemi një model zone, në të cilin duhet të ofrojmë variable: rruga drejt faqes, versionin PHP, përdoruesin. Kështu, është përmirësuar leximi i konfigurimit Nginx, pra riloada.

Kjo konfigurim ka kursyer ndjeshëm burimet e memories dhe ka përshpejtuar punën e Nginx.

Reload nuk do të kalojë!

Në skemën Shared, ne u shpëtuam nga nevoja për të riluajtur (reload) Apache kur ndryshohet cilësimet e faqeve. Më parë, kur një klient dëshironte të shtonte një domen ose të ndryshonte versionin PHP, kërkohej një riloada e detyrueshme e Apache, e cila shkaktonte vonesa në përgjigje dhe kishte një ndikim negativ në performancën e faqeve.

Ne u shpëtuam nga riloada duke krijuar konfigurime dinamike. Falë mpm-itk (moduli Apache), çdo proces ekzekutohet nga një përdorues i veçantë, çka rrit nivelin e sigurisë. Ky mënyrë lejon të kalojnë nga Nginx në Apache2 të dhëna për përdoruesin dhe document_root e tij. Kështu, Apache nuk përmban konfigurimet e faqeve, ai i merr ato dinamikisht dhe riloada nuk është më e nevojshme.

Apache & Nginx. Të lidhur nga një zinxhir
Konfigurimi i skemës Shared

Por si qëndron me Docker?

Shumë kompani janë kaluar në një sistem të bazuar në konteinera. Timeweb aktualisht po shqyrton mundësinë e këtij kalimi. Sigurisht, në çdo zgjidhje mund të gjejmë avantajet dhe disavantazhet.

Në shqipë sime, përveç përfitimeve të padiskutueshme, në sistemin kontejner, përdoruesit iu ofrohet më pak burime. Në Timeweb, përmes së përshkruarës skemës së punës së hostimit, përdoruesi nuk ka kufizime në memory. Ai merr më shumë burime se sa në një kontejner. Për më tepër, përdoruesit mund t'i ngarkojnë më shumë module Apache.

Timeweb mbështet funksionimin e rreth 500,000 faqeve. Ne mbajmë një përgjegjësi të madhe dhe nuk bëjmë ndryshime të menjëhershme dhe të paarsyeshme në një arkitekturë komplekse. Kombinimi Apache & Nginx është i besueshëm dhe i provuar nga koha. Ne, nga ana jonë, përpiqemi të arrijmë maksimumin e performancës falë konfigurimeve unike.

Për një funksionim të cilësisë dhe shpejtësisë së lartë për një numër të madh faqesh, është e nevojshme të përdoren konfigurime standarde dhe dinamike të Apache dhe Nginx. Ajo lejon të administrohet lehtë dhe shpejt një numër të madh serverash të njëjtë.

Burimi: habr.com

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster