Apache ja Nginx. Yhdistetty yhdellä ketjulla

Kuinka Apache & Nginx -yhdistelmä toteutetaan Timewebissä

Monille yrityksille Nginx + Apache + PHP on hyvin tyypillinen ja yleinen yhdistelmä, eikä Timeweb ole poikkeus. Kuitenkin sen tarkan ymmärtäminen, miten se toteutetaan, voi olla mielenkiintoista ja hyödyllistä.

Apache ja Nginx. Yhdistetty yhdellä ketjulla

Tällaisen yhdistelmän käyttö määräytyy tietysti asiakkaidemme tarpeiden mukaan. Sekä Nginxillä että Apachella on erityinen rooli, kukin ratkaisee tietyn ongelman.

Perusasetukset Apache suoritetaan itse Apachen määritystiedostoissa, ja asiakassivustojen asetukset tehdään kautta .htaccess-tiedosto. .htaccess on asetustiedosto, jossa asiakas voi itsenäisesti määrittää web-palvelimen säännöt ja toiminnan. Tämä asetus koskee erityisesti hänen sivustoaan. Esimerkiksi Apache-toiminnallisuuden ansiosta käyttäjät voivat vaihtaa käyttötapaa samassa PHP-versiossa mod_php:stä mod_cgi:ksi; voit määrittää uudelleenohjauksia, optimoinnin SEO:lle, kätevän URL-osoitteen, joitain rajoituksia PHP:lle.

nginx käytetään välityspalvelimena liikenteen ohjaamiseen Apacheen ja verkkopalvelimena staattisen sisällön palvelemiseen. Olemme myös kehittäneet Nginxille suojausmoduuleja, joiden avulla voimme suojata käyttäjiemme tietoja esimerkiksi käyttöoikeuksien erottamiseksi.

Kuvitellaan, että käyttäjä vierailee asiakkaamme verkkosivustolla. Ensin käyttäjä pääsee Nginxiin, joka palvelee staattista sisältöä. Se tapahtuu välittömästi. Sitten, kun kyse on PHP:n lataamisesta, Nginx välittää pyynnön Apachelle. Ja Apache yhdessä PHP:n kanssa tuottaa jo dynaamista sisältöä.

Timewebin Apache & Nginx -paketin ominaisuudet

Virtuaalihosting-palvelumme toteuttaa 2 pääkäyttöjärjestelmää Apachelle ja Nginxille: Jaettu ja omistettu.

Jaettu kaava

Tätä järjestelmää käytetään useimmille käyttäjille. Se erottuu yksinkertaisuudestaan ​​ja resurssiintensiivisyydestään: Shared-järjestelmä käyttää vähemmän resursseja, minkä vuoksi sen tariffi on halvempi. Tämän mallin mukaan palvelin käyttää yhtä Nginxiä, jonka avulla se voi palvella kaikkia käyttäjien pyyntöjä ja useita Apache-esiintymiä.

Shared-järjestelmä on parantunut pitkään: pikkuhiljaa korjasimme puutteet. Kätevästi se voidaan tehdä ilman, että lähdekoodia tarvitsee muokata.

Apache ja Nginx. Yhdistetty yhdellä ketjulla
Jaettu kaava

Omistettu järjestelmä

Dedicated vaatii enemmän resursseja, joten sen tariffi on kalliimpi asiakkaille. Dedicated-järjestelmässä jokainen asiakas saa oman erillisen Apachen. Resurssit tässä on varattu asiakkaalle, ne jaetaan yksinomaan. Kuinka se toimii: Palvelimella on useita PHP-versioita. Tuemme versioita 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4. Joten jokaiselle PHP-versiolle käynnistetään oma Apache.

Apache ja Nginx. Yhdistetty yhdellä ketjulla
Omistettu järjestelmä

Turvallinen alue. Vyöhykkeiden asettaminen Nginxissä

Aiemmin Nginxissä käytimme monia jaettuja muistivyöhykkeitä (vyöhykkeitä) - yksi palvelinlohko verkkotunnusta kohden. Tämä asennus vaatii paljon resursseja, koska jokaiselle sivustolle luodaan erillinen vyöhyke. Nginx-asetuksissa useimmat sivustot ovat kuitenkin samantyyppisiä, joten ne voidaan sijoittaa yhteen vyöhykkeeseen moduulin karttaohjeiden käytön ansiosta ngx_http_map_module, joiden avulla voit määrittää vastaavuuksia. Meillä on esimerkiksi vyöhykemalli, johon meidän on syötettävä muuttujat: polku sivustolle, PHP-versio, käyttäjä. Siten Nginx-kokoonpanon uudelleenluku, eli uudelleenlataus, nopeutui.

Tämä kokoonpano säästää huomattavasti RAM-resursseja ja nopeuttaa Nginxiä.

Uudelleenlataus ei toimi!

Jaetussa järjestelmässä pääsimme eroon tarpeesta ladata Apache uudelleen verkkosivuston asetuksia muutettaessa. Aikaisemmin, kun yksi asiakas halusi lisätä verkkotunnuksen tai muuttaa PHP-versiota, Apachen pakollinen uudelleenlataus vaadittiin, mikä johti vastausten viivästymiseen ja heikensi sivuston suorituskykyä.

Pääsimme eroon uudelleenlatauksista luomalla dynaamisia kokoonpanoja. Kiitokset mpm-itk (Apache-moduuli), jokainen prosessi toimii erillisenä käyttäjänä, mikä lisää suojaustasoa. Tämän menetelmän avulla voit siirtää tietoja käyttäjästä ja hänen document_rootistaan ​​Nginxistä Apache2:een. Siten Apache ei sisällä sivustomäärityksiä, se vastaanottaa ne dynaamisesti, eikä uudelleenlatauksia enää tarvita.

Apache ja Nginx. Yhdistetty yhdellä ketjulla
Jaetun skeeman määritys

Entä Docker?

Monet yritykset ovat siirtyneet konttipohjaiseen järjestelmään. Timeweb harkitsee parhaillaan tällaisen siirtymän mahdollisuutta. Tietysti jokaisessa päätöksessä on hyvät ja huonot puolensa.

Kiistattomien etujen lisäksi konttijärjestelmä tarjoaa käyttäjälle vähemmän resursseja. Timewebissä kuvatun isännöintijärjestelmän ansiosta käyttäjällä ei ole rajoituksia RAM-muistissa. Se vastaanottaa enemmän resursseja kuin säiliössä. Lisäksi käyttäjällä voi olla useampia Apache-moduuleja ladattuina.

Timeweb tukee noin 500 000 verkkosivustoa. Otamme suuren vastuun emmekä tee välittömiä, perusteettomia muutoksia monimutkaiseen arkkitehtuuriin. Apache & Nginx -yhdistelmä on luotettava ja aika-testattu. Pyrimme puolestaan ​​saavuttamaan maksimaalisen suorituskyvyn ainutlaatuisilla kokoonpanoilla.

Laadukkaan ja nopean suuren määrän sivustoja varten sinun on käytettävä Apachen ja Nginxin mallia ja dynaamisia määrityksiä. Sen avulla voit helposti ja nopeasti hallita suurta määrää samankaltaisia ​​palvelimia.

Lähde: will.com

Lisää kommentti