Apache & Nginx. Lidhur me një zinxhir

Si zbatohet kombinimi Apache & Nginx në Timeweb

Për shumë kompani, Nginx + Apache + PHP është një kombinim shumë tipik dhe i zakonshëm, dhe Timeweb nuk bën përjashtim. Megjithatë, të kuptuarit saktësisht se si zbatohet mund të jetë interesante dhe e dobishme.

Apache & Nginx. Lidhur me një zinxhir

Përdorimi i një kombinimi të tillë, natyrisht, diktohet nga nevojat e klientëve tanë. Të dy Nginx dhe Apache luajnë një rol të veçantë, secili zgjidh një problem specifik.

Cilësimet themelore Apache kryhen në skedarët e konfigurimit të vetë Apache, dhe cilësimet për faqet e klientëve ndodhin përmes skedar .htaccess. .htaccess është një skedar konfigurimi në të cilin klienti mund të konfigurojë në mënyrë të pavarur rregullat dhe sjelljen e serverit në internet. Ky cilësim do të zbatohet posaçërisht për faqen e tij. Për shembull, falë funksionalitetit Apache, përdoruesit mund të ndryshojnë mënyrën e funksionimit brenda të njëjtit version PHP nga mod_php në mod_cgi; mund të vendosni ridrejtime, optimizim për SEO, URL të përshtatshme, disa kufizime për PHP.

nginx përdoret si një server proxy për të ridrejtuar trafikun në Apache dhe si një server në internet për të shërbyer përmbajtje statike. Ne kemi zhvilluar gjithashtu module sigurie për Nginx që na lejojnë të mbrojmë të dhënat e përdoruesve tanë, për shembull, për të ndarë të drejtat e aksesit.

Le të imagjinojmë që një përdorues viziton faqen e internetit të klientit tonë. Së pari, përdoruesi shkon te Nginx, i cili shërben për përmbajtje statike. Kjo ndodh në çast. Pastaj, kur bëhet fjalë për ngarkimin e PHP, Nginx e përcjell kërkesën te Apache. Dhe Apache, së bashku me PHP, tashmë gjeneron përmbajtje dinamike.

Karakteristikat e paketës Apache & Nginx në Timeweb

Pritja jonë virtuale zbaton 2 skema kryesore operative për Apache & Nginx: Të përbashkëta dhe të përkushtuara.

Skema e përbashkët

Kjo skemë përdoret për shumicën e përdoruesve. Dallohet nga thjeshtësia dhe intensiteti i burimeve: skema e përbashkët përdor më pak burime, kjo është arsyeja pse tarifa e saj është më e lirë. Sipas kësaj skeme, serveri drejton një Nginx, i cili e lejon atë të shërbejë të gjitha kërkesat e përdoruesve dhe disa raste të Apache.

Skema Shared është përmirësuar për një kohë të gjatë: gradualisht korrigjuam mangësitë. Në mënyrë të përshtatshme, mund të bëhet pa nevojën për të modifikuar kodin burimor.

Apache & Nginx. Lidhur me një zinxhir
Skema e përbashkët

Skema e dedikuar

E dedikuar kërkon më shumë burime, kështu që tarifa e saj është më e shtrenjtë për klientët. Në skemën Dedicated, çdo klient merr Apache-n e vet të veçantë. Burimet këtu janë të rezervuara për klientin, ato ndahen ekskluzivisht. Si funksionon: Ka disa versione të PHP në server. Ne mbështesim versionet 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4. Pra, për çdo version të PHP-së lëshohet Apache-ja e tij.

Apache & Nginx. Lidhur me një zinxhir
Skema e dedikuar

Zonë e sigurtë. Vendosja e zonave në Nginx

Më parë, për Nginx, ne përdorëm shumë zona (zona) memorie të përbashkët - një bllok server për domen. Ky konfigurim kërkon shumë burime, pasi krijohet një zonë e veçantë për secilën faqe. Sidoqoftë, në cilësimet Nginx, shumica e faqeve janë të të njëjtit lloj, kështu që ato mund të vendosen në një zonë falë përdorimit të direktivave të hartave në modul. ngx_http_map_module, të cilat ju lejojnë të specifikoni korrespondencat. Për shembull, ne kemi një shabllon të zonës në të cilin duhet të ofrojmë variabla: shtegu drejt faqes, versioni PHP, përdoruesi. Kështu, rileximi i konfigurimit Nginx, domethënë ringarkimi, u përshpejtua.

Ky konfigurim kurseu shumë burimet RAM dhe shpejtoi Nginx.

Rimbushja nuk do të funksionojë!

Në skemën Shared, ne hoqëm nevojën për të ringarkuar Apache kur ndryshonim cilësimet e faqes në internet. Më parë, kur një klient dëshironte të shtonte një domen ose të ndryshonte versionin PHP, kërkohej një ringarkim i detyrueshëm i Apache, gjë që çoi në vonesa në përgjigje dhe ndikoi negativisht në performancën e faqes.

Ne u çliruam nga ringarkimet duke krijuar konfigurime dinamike. Falë mpm-itk (Moduli Apache), çdo proces funksionon si përdorues i veçantë, gjë që rrit nivelin e sigurisë. Kjo metodë ju lejon të transferoni të dhëna rreth përdoruesit dhe rrënjës së dokumentit të tij nga Nginx në Apache2. Kështu, Apache nuk përmban konfigurime faqesh, ai i merr ato në mënyrë dinamike dhe ringarkimet nuk kërkohen më.

Apache & Nginx. Lidhur me një zinxhir
Konfigurimi i skemës së përbashkët

Po Docker?

Shumë kompani kanë kaluar në një sistem të bazuar në kontejnerë. Timeweb aktualisht po shqyrton mundësinë e një tranzicioni të tillë. Sigurisht, çdo vendim ka të mirat dhe të këqijat.

Së bashku me avantazhet e pamohueshme, sistemi i kontejnerëve i siguron përdoruesit më pak burime. Në Timeweb, falë skemës së përshkruar të pritjes, përdoruesi nuk ka kufizime në RAM. Ai merr më shumë burime sesa në kontejner. Përveç kësaj, përdoruesi mund të ketë më shumë module Apache të ngarkuar.

Timeweb fuqizon rreth 500 faqe interneti. Ne marrim përgjegjësi të madhe dhe nuk bëjmë ndryshime të menjëhershme, të pajustifikuara në arkitekturën komplekse. Kombinimi Apache & Nginx është i besueshëm dhe i testuar me kohë. Ne, nga ana tjetër, përpiqemi të arrijmë performancën maksimale përmes konfigurimeve unike.

Për funksionimin me cilësi të lartë dhe të shpejtë të një numri të madh faqesh, duhet të përdorni një shabllon dhe konfigurim dinamik të Apache dhe Nginx. Kjo ju lejon të administroni me lehtësi dhe shpejt një numër të madh serverësh të ngjashëm.

Burimi: www.habr.com

Shto një koment