Apache in Nginx. Povezan z eno verigo

Kako je kombinacija Apache & Nginx implementirana v Timeweb

Za številna podjetja je Nginx + Apache + PHP zelo tipična in pogosta kombinacija in Timeweb ni izjema. Vendar pa je lahko zanimivo in koristno razumevanje, kako natančno se izvaja.

Apache in Nginx. Povezan z eno verigo

Uporabo takšne kombinacije seveda narekujejo potrebe naših strank. Tako Nginx kot Apache imata posebno vlogo, vsak rešuje določen problem.

osnovne nastavitve Apache izvajajo v konfiguracijskih datotekah samega Apacheja, nastavitve za odjemalska spletna mesta pa potekajo prek .htaccess datoteko. .htaccess je konfiguracijska datoteka, v kateri lahko odjemalec samostojno konfigurira pravila in obnašanje spletnega strežnika. Ta nastavitev bo veljala posebej za njegovo spletno mesto. Na primer, zahvaljujoč funkcionalnosti Apache lahko uporabniki spremenijo način delovanja znotraj iste različice PHP iz mod_php v mod_cgi; lahko nastavite preusmeritve, optimizacijo za SEO, priročen URL, nekaj omejitev za PHP.

Nginx uporablja se kot proxy strežnik za preusmerjanje prometa na Apache in kot spletni strežnik za serviranje statične vsebine. Razvili smo tudi varnostne module za Nginx, ki nam omogočajo zaščito podatkov naših uporabnikov, na primer ločevanje pravic dostopa.

Predstavljajmo si, da uporabnik obišče spletno stran naše stranke. Najprej uporabnik pride do Nginxa, ki streže statično vsebino. To se zgodi takoj. Nato, ko pride do nalaganja PHP, Nginx posreduje zahtevo Apacheju. In Apache skupaj s PHP že ustvarja dinamično vsebino.

Funkcije paketa Apache & Nginx v Timewebu

Naše virtualno gostovanje izvaja 2 glavni operacijski shemi za Apache in Nginx: Deljeno in posvečeno.

Skupna shema

Ta shema se uporablja za večino uporabnikov. Odlikujeta jo preprostost in intenzivnost virov: skupna shema porabi manj virov, zato je njena tarifa cenejša. Po tej shemi strežnik poganja en Nginx, ki mu omogoča, da služi vsem uporabniškim zahtevam, in več primerkov Apache.

Skupna shema se že dolgo izboljšuje: postopoma smo odpravili pomanjkljivosti. Priročno je, da je to mogoče storiti brez potrebe po spreminjanju izvorne kode.

Apache in Nginx. Povezan z eno verigo
Skupna shema

Namenska shema

Namenski zahteva več sredstev, zato je njegova tarifa za stranke dražja. V namenski shemi vsaka stranka dobi svoj ločeni Apache. Viri so tukaj rezervirani za stranko, dodeljeni so izključno. Kako deluje: Na strežniku je več različic PHP. Podpiramo različice 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4. Tako se za vsako različico PHP zažene svoj Apache.

Apache in Nginx. Povezan z eno verigo
Namenska shema

Varno območje. Nastavitev območij v Nginxu

Prej smo za Nginx uporabljali številne skupne pomnilniške cone (območja) - en strežniški blok na domeno. Ta nastavitev zahteva veliko sredstev, saj je za vsako spletno mesto ustvarjeno ločeno območje. Vendar pa je v nastavitvah Nginx večina spletnih mest iste vrste, tako da jih je mogoče postaviti v eno cono zahvaljujoč uporabi direktiv zemljevida v modulu ngx_http_map_module, ki vam omogočajo določanje korespondenc. Na primer, imamo predlogo cone, v kateri moramo podati spremenljivke: pot do spletnega mesta, različica PHP, uporabnik. Tako se je pospešilo ponovno branje konfiguracije Nginx, torej ponovno nalaganje.

Ta konfiguracija je močno prihranila vire RAM-a in pospešila Nginx.

Ponovno nalaganje ne bo delovalo!

V skupni shemi smo se znebili potrebe po ponovnem nalaganju Apache pri spreminjanju nastavitev spletnega mesta. Prej, ko je en odjemalec želel dodati domeno ali spremeniti različico PHP, je bilo potrebno obvezno ponovno naložiti Apache, kar je povzročilo zamude pri odzivih in negativno vplivalo na delovanje spletnega mesta.

Z ustvarjanjem dinamičnih konfiguracij smo se znebili ponovnih nalaganj. Zahvale gredo mpm-itk (Apache modul), vsak proces teče kot ločen uporabnik, kar poveča stopnjo varnosti. Ta metoda vam omogoča prenos podatkov o uporabniku in njegovem document_root iz Nginx v Apache2. Tako Apache ne vsebuje konfiguracij spletnega mesta, ampak jih sprejema dinamično in ponovno nalaganje ni več potrebno.

Apache in Nginx. Povezan z eno verigo
Konfiguracija skupne sheme

Kaj pa Docker?

Številna podjetja so prešla na kontejnerski sistem. Timeweb trenutno razmišlja o možnosti takšnega prehoda. Seveda so pri vsaki odločitvi prednosti in slabosti.

Poleg nedvomnih prednosti kontejnerski sistem uporabniku zagotavlja manj sredstev. V Timewebu zahvaljujoč opisani shemi gostovanja uporabnik nima omejitev pri RAM-u. Prejme več virov kot v posodi. Poleg tega ima lahko uporabnik naloženih več modulov Apache.

Timeweb poganja približno 500 spletnih mest. Prevzemamo veliko odgovornost in ne izvajamo trenutnih, neupravičenih sprememb kompleksne arhitekture. Kombinacija Apache & Nginx je zanesljiva in časovno preizkušena. Mi pa poskušamo doseči največjo zmogljivost z edinstvenimi konfiguracijami.

Za kakovostno in hitro delovanje velikega števila spletnih mest morate uporabiti predlogo in dinamično konfiguracijo Apache in Nginx. Omogoča preprosto in hitro administracijo velikega števila podobnih strežnikov.

Vir: www.habr.com

Dodaj komentar