Förra veckan i denna artikel beskrev vi hur kopplingen mellan Apache och Nginx Àr uppbyggd pÄ Timeweb. Vi Àr mycket tacksamma för lÀsarnas frÄgor och aktiva diskussioner! Idag berÀttar vi hur vi har implementerat tillgÀngligheten av flera PHP-versioner pÄ en och samma server och varför vi garanterar dataskydd för vÄra kunder.

Virtuell hosting (Delad hosting) innebÀr att mÄnga kundkonton finns pÄ en och samma server. PÄ ett kundkonto finns vanligtvis flera webbplatser. Webbplatserna kan drivas bÄde pÄ fÀrdiga CMS (till exempel Bitrix) och pÄ skrÀddarsydda system. Eftersom de tekniska kraven för alla system Àr olika, behöver man hantera flera PHP-versioner inom ramen för en och samma server.
Som huvudwebbserver anvĂ€nder vi Nginx: den tar emot alla externa anslutningar och levererar statiskt innehĂ„ll. Ăvriga förfrĂ„gningar dirigerar vi vidare till Webbservern Apache. HĂ€r börjar magin: för varje PHP-version körs en separat instans av Apache som lyssnar pĂ„ en specifik port. Denna port anges i den virtuella vĂ€rden för kundens webbplats.
Mer om Shared-schemat kan du lÀsa i .

Delad schema
Det Àr viktigt att notera att vi installerar PHP-paket för olika versioner, eftersom det vanligtvis bara finns en version av PHP i alla distributioner.
SÀkerhet först!
En av de viktigaste uppgifterna med virtuell hosting Àr att sÀkerstÀlla kundens dataskydd. Olika konton som finns pÄ en och samma server Àr sjÀlvstÀndiga och oberoende. Hur fungerar det?
Webbplatsfilerna lagras i anvÀndarnas egna hemkataloger, medan de virtuella vÀrdena pÄ webbservrarna anger de nödvÀndiga sökvÀgarna. Det Àr viktigt att webbservrarna, Nginx och Apache, har tillgÄng till slutfilerna för en viss kund, eftersom webbservern endast startas av en anvÀndare.
För Nginx anvÀnds en sÀkerhetspatch som utvecklats av Timeweb-teamet: denna patch Àndrar anvÀndaren till den som anges i webbserverns konfigurationsfil.
Hos andra hostingleverantörer kan detta problem lösas till exempel genom manipulation med utökade rÀttigheter för filsystemet (ACL).
För Apache anvÀnds en multiprocessmodul . Den tillÄter att varje VirtualHost körs med sitt eget anvÀndar-id och gruppens id.

Genom operationerna som beskrivs ovan fÄr vi en sÀker isolerad miljö för varje kund. Samtidigt löser vi ocksÄ skalningsfrÄgor för shared hosting.
Hur kopplingen mellan Apache och Nginx Àr implementerad kan lÀsas i vÄr artikel. Dessutom beskrivs en alternativ konfiguration genom en dedikerad schema dÀr.
Om du har nÄgra frÄgor till vÄra experter, skriv i kommentarerna. Vi ska försöka svara pÄ allt eller beskriva lösningen mer i detalj i kommande artiklar.
KĂ€lla: habr.com
