Apache & Nginx. Povezani jednim lancem

Kako je kombinacija Apache & Nginx implementirana u Timeweb

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

Apache & Nginx. Povezani jednim lancem

Upotreba takve kombinacije je, naravno, diktirana potrebama naših klijenata. I Nginx i Apache igraju posebnu ulogu, svaki rješava određeni problem.

Osnovna podešavanja apaš se izvode u konfiguracijskim datotekama samog Apachea, a postavke za klijentske stranice se odvijaju kroz .htaccess fajl. .htaccess je konfiguracijska datoteka u kojoj klijent može samostalno konfigurirati pravila i ponašanje web servera. Ova postavka će se primijeniti posebno na njegovu web stranicu. Na primjer, zahvaljujući Apache funkcionalnosti, korisnici mogu promijeniti način rada unutar iste PHP verzije iz mod_php u mod_cgi; možete podesiti preusmjeravanja, optimizaciju za SEO, pogodan URL, neka ograničenja za PHP.

Nginx koristi se kao proxy server za preusmjeravanje prometa na Apache i kao web server za opsluživanje statičkog sadržaja. Također smo razvili sigurnosne module za Nginx koji nam omogućavaju da zaštitimo podatke naših korisnika, na primjer, da odvojimo prava pristupa.

Zamislimo da korisnik posjeti web stranicu našeg klijenta. Prvo, korisnik dolazi do Nginxa, koji opslužuje statički sadržaj. To se dešava odmah. Zatim, kada je u pitanju učitavanje PHP-a, Nginx prosljeđuje zahtjev Apacheu. A Apache, zajedno sa PHP-om, već generiše dinamički sadržaj.

Karakteristike paketa Apache & Nginx u Timewebu

Naš virtuelni hosting implementira 2 glavne operativne šeme za Apache i Nginx: Zajednički i posvećeni.

Zajednička šema

Ova šema se koristi za većinu korisnika. Odlikuje se jednostavnošću i intenzitetom resursa: Zajednička šema koristi manje resursa, zbog čega je njena tarifa jeftinija. Prema ovoj šemi, server pokreće jedan Nginx, koji mu omogućava da opslužuje sve korisničke zahtjeve, i nekoliko instanci Apache-a.

Zajednička šema se već dugo poboljšava: postepeno smo ispravljali nedostatke. Pogodno, to se može učiniti bez potrebe za modifikacijom izvornog koda.

Apache & Nginx. Povezani jednim lancem
Zajednička šema

Namjenska shema

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

Apache & Nginx. Povezani jednim lancem
Namjenska shema

Sigurna zona. Postavljanje zona u Nginxu

Ranije smo za Nginx koristili mnogo zajedničkih memorijskih zona (zona) - jedan blok servera po domeni. Ovo podešavanje zahtijeva mnogo resursa, jer se za svaku lokaciju kreira posebna zona. Međutim, u postavkama Nginxa, većina stranica je istog tipa, tako da se mogu smjestiti u jednu zonu zahvaljujući korištenju mapskih direktiva u modulu ngx_http_map_module, koji vam omogućavaju da specificirate korespondencije. Na primjer, imamo predložak zone u kojem moramo dostaviti varijable: putanju do stranice, PHP verziju, korisnika. Tako je ubrzano ponovno čitanje Nginx konfiguracije, odnosno ponovno učitavanje.

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

Ponovno učitavanje neće raditi!

U šemi Shared riješili smo se potrebe za ponovnim učitavanjem Apachea prilikom promjene postavki web stranice. Ranije, kada je jedan klijent želeo da doda domen ili da promeni verziju PHP-a, bilo je potrebno obavezno ponovno učitavanje Apache-a, što je dovelo do kašnjenja u odgovorima i negativno uticalo na performanse sajta.

Riješili smo se ponovnog učitavanja kreiranjem dinamičkih konfiguracija. Hvala za mpm-itk (Apache modul), svaki proces radi kao poseban korisnik, što povećava nivo sigurnosti. Ova metoda vam omogućava da prenesete podatke o korisniku i njegovom document_root sa Nginxa na Apache2. Dakle, Apache ne sadrži konfiguracije lokacije, on ih prima dinamički i ponovno učitavanje više nije potrebno.

Apache & Nginx. Povezani jednim lancem
Konfiguracija dijeljene šeme

Šta je sa Dockerom?

Mnoge kompanije su prešle na sistem baziran na kontejnerima. Timeweb trenutno razmatra mogućnost takve tranzicije. Naravno, svaka odluka ima prednosti i nedostatke.

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

Timeweb pokreće oko 500 web stranica. Preuzimamo veliku odgovornost i ne pravimo trenutne, neopravdane promjene složene arhitekture. Kombinacija Apache & Nginx je pouzdana i vremenski testirana. Mi, zauzvrat, pokušavamo postići maksimalne performanse kroz jedinstvene konfiguracije.

Za kvalitetan i brz rad velikog broja stranica potrebno je koristiti predložak i dinamičku konfiguraciju Apache i Nginx. Omogućava vam da lako i brzo administrirate veliki broj sličnih servera.

izvor: www.habr.com

Dodajte komentar