Apache i Nginx. Povezani jednim lancem

Kako je kombinacija Apache & Nginx implementirana u Timewebu

Za mnoge tvrtke, Nginx + Apache + PHP vrlo je tipična i uobičajena kombinacija, a Timeweb nije iznimka. Međutim, razumijevanje kako se to točno provodi može biti zanimljivo i korisno.

Apache i Nginx. Povezani jednim lancem

Korištenje takve kombinacije je, naravno, diktirano potrebama naših klijenata. I Nginx i Apache imaju posebnu ulogu, svaki rješava određeni problem.

osnovne postavke apaš izvode se u konfiguracijskim datotekama samog Apachea, a postavke za klijentske stranice pojavljuju se putem .htaccess datoteku. .htaccess je konfiguracijska datoteka u kojoj klijent može samostalno konfigurirati pravila i ponašanje web poslužitelja. Ova će se postavka posebno primijeniti na njegovu web-lokaciju. Na primjer, zahvaljujući funkcionalnosti Apache, korisnici mogu promijeniti način rada unutar iste PHP verzije iz mod_php u mod_cgi; možete postaviti preusmjeravanja, optimizaciju za SEO, praktični URL, neka ograničenja za PHP.

Nginx koristi se kao proxy poslužitelj za preusmjeravanje prometa na Apache i kao web poslužitelj za posluživanje statičnog sadržaja. Također smo razvili sigurnosne module za Nginx koji nam omogućuju zaštitu podataka naših korisnika, na primjer, odvajanje prava pristupa.

Zamislimo da korisnik posjeti web stranicu našeg klijenta. Prvo, korisnik dolazi do Nginxa, koji poslužuje statični sadržaj. To se događa trenutno. Zatim, kada dođe do učitavanja PHP-a, Nginx prosljeđuje zahtjev Apacheu. A Apache, zajedno s PHP-om, već generira dinamički sadržaj.

Značajke paketa Apache & Nginx u Timewebu

Naš virtualni hosting implementira 2 glavne operativne sheme za Apache & Nginx: Podijeljeno i posvećeno.

Dijeljena shema

Ova se shema koristi za većinu korisnika. Odlikuje se jednostavnošću i intenzivnošću resursa: dijeljena shema koristi manje resursa, zbog čega je njezina tarifa jeftinija. Prema ovoj shemi, poslužitelj pokreće jedan Nginx, koji mu omogućuje posluživanje svih korisničkih zahtjeva, i nekoliko instanci Apachea.

Zajednička shema se dugo poboljšavala: postupno smo ispravili nedostatke. Zgodno, to se može učiniti bez potrebe za modificiranjem izvornog koda.

Apache i Nginx. Povezani jednim lancem
Dijeljena shema

Namjenska shema

Namjenski zahtijeva više resursa, pa je njegova tarifa skuplja za korisnike. U Dedicated shemi, svaki klijent dobiva svoj zasebni Apache. Resursi su ovdje rezervirani za klijenta, alocirani su isključivo. Kako radi: Postoji nekoliko verzija PHP-a na poslužitelju. Podržavamo verzije 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4. Dakle, za svaku verziju PHP-a pokreće se vlastiti Apache.

Apache i Nginx. Povezani jednim lancem
Namjenska shema

Sigurna zona. Postavljanje zona u Nginxu

Prethodno smo za Nginx koristili mnoge zajedničke memorijske zone (zone) - jedan blok poslužitelja po domeni. Ovo postavljanje zahtijeva puno resursa, budući da se za svako mjesto stvara posebna zona. Međutim, u postavkama Nginxa, većina stranica je iste vrste, tako da se mogu smjestiti u jednu zonu zahvaljujući korištenju direktiva karte u modulu ngx_http_map_modul, koji vam omogućuju da odredite korespondencije. Na primjer, imamo predložak zone u koji moramo unijeti varijable: put do stranice, PHP verzija, korisnik. Time je ubrzano ponovno čitanje Nginx konfiguracije, odnosno reload.

Ova konfiguracija uvelike je uštedjela RAM resurse i ubrzala Nginx.

Ponovno učitavanje neće raditi!

U zajedničkoj shemi riješili smo se potrebe za ponovnim učitavanjem Apachea prilikom mijenjanja postavki web stranice. Ranije, kada je jedan klijent želio dodati domenu ili promijeniti verziju PHP-a, bilo je potrebno obavezno ponovno učitavanje Apachea, što je dovelo do kašnjenja u odgovorima i negativno utjecalo na performanse stranice.

Riješili smo se ponovnog učitavanja stvaranjem dinamičkih konfiguracija. Zahvaljujući mpm-itk (Apache modul), svaki proces radi kao zasebni korisnik, što povećava razinu sigurnosti. Ova metoda vam omogućuje prijenos podataka o korisniku i njegovom document_root-u s Nginx-a na Apache2. Dakle, Apache ne sadrži konfiguracije web mjesta, on ih prima dinamički i ponovno učitavanje više nije potrebno.

Apache i Nginx. Povezani jednim lancem
Dijeljena konfiguracija sheme

Što je s Dockerom?

Mnoge su tvrtke prešle na sustav temeljen na kontejnerima. Timeweb trenutno razmatra mogućnost takvog prijelaza. Naravno, svaka odluka ima prednosti i mane.

Uz neosporne prednosti, kontejnerski sustav korisniku pruža manje resursa. U Timewebu, zahvaljujući opisanoj shemi hostinga, korisnik nema ograničenja u RAM-u. Prima više resursa nego u spremniku. Osim toga, korisnik može imati učitano više Apache modula.

Timeweb pokreće oko 500 web stranica. Preuzimamo veliku odgovornost i ne radimo trenutne, neopravdane izmjene složene arhitekture. Kombinacija Apache & Nginx pouzdana je i provjerena. Mi, pak, pokušavamo postići maksimalnu izvedbu kroz jedinstvene konfiguracije.

Za kvalitetan i brz rad velikog broja stranica potrebno je koristiti predložak i dinamičku konfiguraciju Apache i Nginx. Omogućuje vam jednostavno i brzo administriranje velikog broja sličnih poslužitelja.

Izvor: www.habr.com

Dodajte komentar