Apache és Nginx. Egy lánccal összekötve

Az Apache és Nginx kombináció megvalósítása a Timewebben

Sok vállalat számára az Nginx + Apache + PHP egy nagyon tipikus és gyakori kombináció, és ez alól a Timeweb sem kivétel. A megvalósítás pontos megértése azonban érdekes és hasznos lehet.

Apache és Nginx. Egy lánccal összekötve

Egy ilyen kombináció használatát természetesen ügyfeleink igényei határozzák meg. Mind a Nginx, mind az Apache különleges szerepet tölt be, mindegyik egy adott problémát old meg.

alapbeállítások Apache az Apache konfigurációs fájljaiban hajtják végre, és az ügyféloldalak beállításai ezen keresztül történnek .htaccess fájl. A .htaccess egy konfigurációs fájl, amelyben az ügyfél önállóan konfigurálhatja a webszerver szabályait és viselkedését. Ez a beállítás kifejezetten az ő webhelyére vonatkozik. Például az Apache funkciónak köszönhetően a felhasználók ugyanazon a PHP-verzión belül módosíthatják a működési módot mod_php-ről mod_cgi-re; beállíthat átirányításokat, optimalizálást SEO-hoz, kényelmes URL-t, néhány korlátot a PHP számára.

nginx proxyszerverként használják a forgalom Apache felé történő átirányítására és webszerverként statikus tartalom kiszolgálására. Az Nginx számára biztonsági modulokat is fejlesztettünk, amelyek lehetővé teszik felhasználóink ​​adatainak védelmét, például a hozzáférési jogok elkülönítését.

Képzeljük el, hogy egy felhasználó felkeresi ügyfelünk webhelyét. Először a felhasználó eljut az Nginx-hez, amely statikus tartalmat szolgál ki. Azonnal megtörténik. Ezután, amikor a PHP betöltésére kerül sor, az Nginx továbbítja a kérést az Apache-nak. Az Apache pedig a PHP-vel együtt már dinamikus tartalmat is generál.

Az Apache és Nginx csomag jellemzői a Timewebben

Virtuális tárhelyünk 2 fő működési sémát valósít meg az Apache és Nginx számára: Megosztott és dedikált.

Megosztott séma

Ezt a sémát a legtöbb felhasználó használja. Egyszerűsége és erőforrás-intenzitása jellemzi: a Shared rendszer kevesebb erőforrást használ fel, ezért a tarifája is olcsóbb. Ennek a sémának megfelelően a kiszolgáló egy Nginxet futtat, amely lehetővé teszi az összes felhasználói kérés és az Apache több példányának kiszolgálását.

A Shared séma régóta javul: fokozatosan korrigáltuk a hiányosságokat. Kényelmesen megtehető anélkül, hogy módosítani kellene a forráskódot.

Apache és Nginx. Egy lánccal összekötve
Megosztott séma

Dedikált rendszer

A dedikált több erőforrást igényel, így a tarifája drágább az ügyfelek számára. A dedikált rendszerben minden ügyfél külön Apache-t kap. Az itt található erőforrások az ügyfél számára vannak fenntartva, kizárólagosan allokálva vannak. Hogyan működik: A PHP több verziója is megtalálható a szerveren. Támogatjuk az 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4 verziókat. Tehát a PHP minden verziójához saját Apache indul el.

Apache és Nginx. Egy lánccal összekötve
Dedikált rendszer

Biztonsági zóna. Zónák beállítása az Nginxben

Korábban az Nginx esetében sok megosztott memóriazónát (zónát) használtunk – tartományonként egy szerverblokkot. Ez a beállítás sok erőforrást igényel, mivel minden webhelyhez külön zóna jön létre. Az Nginx beállításaiban azonban a legtöbb webhely azonos típusú, így egy zónába helyezhetők a modulban található térképi direktívák használatával ngx_http_map_module, amelyek lehetővé teszik a megfelelések megadását. Például van egy zóna sablonunk, amelyben változókat kell megadnunk: a webhely elérési útja, PHP verzió, felhasználó. Így felgyorsult az Nginx konfiguráció újraolvasása, vagyis az újratöltés.

Ez a konfiguráció nagymértékben megtakarította a RAM-erőforrásokat, és felgyorsította az Nginx-et.

Az újratöltés nem fog működni!

A Megosztott sémában megszabadultunk az Apache újratöltésének szükségességétől a webhely beállításainak megváltoztatásakor. Korábban, amikor az egyik ügyfél tartományt akart hozzáadni vagy megváltoztatni a PHP-verziót, az Apache kötelező újratöltésére volt szükség, ami késedelmet okozott a válaszokban, és negatívan befolyásolta a webhely teljesítményét.

Dinamikus konfigurációk létrehozásával megszabadultunk az újratöltésektől. Köszönet mpm-itk (Apache modul), minden folyamat külön felhasználóként fut, ami növeli a biztonsági szintet. Ez a módszer lehetővé teszi, hogy adatokat vigyen át a felhasználóról és a document_root-járól az Nginxről az Apache2-re. Így az Apache nem tartalmaz webhelykonfigurációkat, dinamikusan fogadja azokat, és többé nincs szükség újratöltésre.

Apache és Nginx. Egy lánccal összekötve
Megosztott sémakonfiguráció

Mi van Dockerrel?

Sok vállalat konténer alapú rendszerre tért át. A Timeweb jelenleg mérlegeli egy ilyen átállás lehetőségét. Természetesen minden döntésnek vannak előnyei és hátrányai.

A tagadhatatlan előnyök mellett a konténerrendszer kevesebb erőforrást biztosít a felhasználónak. A Timewebben a leírt hosting sémának köszönhetően a felhasználónak nincs korlátozása a RAM-ban. Több erőforrást kap, mint a tárolóban. Ezenkívül a felhasználó több Apache modult is betölthet.

A Timeweb körülbelül 500 000 webhelyet biztosít. Nagy felelősséget vállalunk, és nem hajtunk végre azonnali, indokolatlan változtatásokat az összetett architektúrán. Az Apache és Nginx kombináció megbízható és jól bevált. Mi viszont egyedi konfigurációkkal igyekszünk maximális teljesítményt elérni.

A nagyszámú webhely kiváló minőségű és gyors működéséhez az Apache és az Nginx sablonját és dinamikus konfigurációját kell használnia. Lehetővé teszi nagyszámú hasonló szerver egyszerű és gyors adminisztrálását.

Forrás: will.com

Hozzászólás