Minulý týden v tématu jsme popsali, jak je sestavena vazba Apache a Nginx v Timewebu. Jsme velmi vděční čtenářům za otázky a aktivní diskusi! Dnes vyprávíme, jak je zajištěna dostupnost několika verzí PHP na jednom serveru a proč garantujeme bezpečnost dat našim klientům.

Virtuální hosting (Sdílený hosting) předpokládá, že na jednom serveru je umístěno mnoho klientských účtů. Na účtu jednoho klienta obvykle existuje několik webových stránek. Weby běží jak na hotových CMS (například Bitrix), tak na zakázkových řešeních. Tímto způsobem mají všechny systémy různé technické požadavky, a proto je v rámci jednoho serveru nutné spravovat několik verzí PHP.
Jako hlavní webový server používáme Nginx: přijímá všechna připojení zvenčí a dodává statický obsah. Ostatní požadavky dále proxyujeme na webový server Apache. A tady začíná magie: pro každou verzi PHP je spuštěn zvláštní instanci Apache, která naslouchá na určitém portu. Tento port je uveden ve virtuálním hostu klientské stránky.
O fungování Sdíleného schématu si můžete přečíst podrobněji v .

Sdílené schéma
Je důležité poznamenat, že instalujeme balíčky PHP pro různé verze, protože ve všech distribucích obvykle leží pouze jedna verze PHP.
Bezpečnost především!
Jedním z hlavních úkolů virtuálního hostingu je zajistit bezpečnost dat klienta. Různé účty, nacházející se na jednom serveru, jsou samostatné a nezávislé. Jak to funguje?
Soubory webů jsou uloženy v domovských adresářích samotných uživatelů, a ve virtuálním hostu webových serverů jsou uvedeny potřebné cesty. Přičemž je důležité, aby webové servery, Nginx a Apache, měly přístup k koncovým souborům konkrétního klienta, protože webový server je spuštěn pouze pod jedním uživatelem.
Pro Nginx se používá bezpečnostní patch vyvinutý týmem Timeweb: tento patch mění uživatele na toho, který je uveden v konfiguračním souboru webového serveru.
U jiných poskytovatelů hostingu může být tento problém vyřešen například pomocí manipulací s rozšířenými právy souborového systému (ACL).
Pro provoz Apache se používá multiprocesní modul . Umožňuje spustit každý VirtualHost s vlastním identifikátorem uživatele a ID skupiny.

Tímto způsobem, díky výše popsaným operacím, získáváme bezpečné izolované prostředí pro každého klienta. Zároveň také řešíme úkoly škálovatelnosti pro sdílený hosting.
Jak je implementována vazba Apache a Nginx, si můžete přečíst v našem článku. Kromě toho je tam také popsána alternativní konfigurace prostřednictvím dedikované schématu.
Pokud máte na naše odborníky dotazy, pište do komentářů. Pokusíme se na všechno odpovědět nebo popsat řešení úlohy podrobněji v následujících článcích.
Zdroj: habr.com
