I sidste uge i denne artikel beskrev vi, hvordan kombinationen af Apache og Nginx fungerer i Timeweb. Vi er meget taknemmelige over for læserne for deres spørgsmål og aktive diskussioner! I dag fortæller vi, hvordan tilgængeligheden af flere versioner af PHP fungerer på én server, og hvorfor vi garanterer sikkerheden af vores kunders data.

Virtuel hosting (Delt hosting) indebærer, at mange kundenummer hostes på én server. På én kundes konto ligger der som regel flere websites. Websites fungerer både på færdige CMS'er (for eksempel Bitrix) og på skræddersyede løsninger. Derfor er de tekniske krav forskellige for alle systemer, så det er nødvendigt at håndtere flere versioner af PHP på en enkelt server.
Som vores primære webserver bruger vi Nginx: den modtager alle eksterne forbindelser og leverer statisk indhold. De øvrige anmodninger bliver derefter proxied videre til webserveren Apache. Her begynder magien: for hver version af PHP kører en separat instans af Apache, som lytter på en bestemt port. Denne port er angivet i den virtuelle vært for kundens website.
Du kan læse mere om Shared-schemas funktion i .

Shared-schema
Det er vigtigt at bemærke, at vi installerer PHP-pakker til forskellige versioner, da der normalt kun ligger én version af PHP i alle distributioner.
Sikkerhed først!
En af hovedopgaverne ved virtuel hosting er at sikre kundens data. Forskellige konti, selvom de ligger på én server, er selvstændige og uafhængige. Hvordan fungerer det?
Filene til websites opbevares i brugernes hjemmebiblioteker, mens de nødvendige stier angives i den virtuelle vært for webserverne. Det er vigtigt, at webserverne, Nginx og Apache, har adgang til de pågældende kundefiler, da webserveren kun køres af én bruger.
Nginx bruger en sikkerhedspatch udviklet af Timeweb-teamet: denne patch ændrer brugeren til den, der er angivet i konfigurationsfilen for webserveren.
Hos andre hostingudbydere kan dette problem løses ved for eksempel at manipulere med udvidede rettigheder på filsystemet (ACL).
For Apache anvendes multiprocess modulen . Den gør det muligt at køre hver VirtualHost med sit eget bruger-id og gruppe-id.

Dermed opnår vi en sikker isoleret miljø for hver kunde takket være de operationer, der er beskrevet ovenfor. Samtidig løser vi også skaléringsopgaver for Shared-hosting.
Hvordan forbindelsen mellem Apache og Nginx er implementeret, kan læses i vores artikel. Der beskrives desuden en alternativ konfiguration gennem Dedicated-skemaet.
Hvis du har spørgsmål til vores eksperter, så skriv i kommentarerne. Vi vil forsøge at besvare alt eller beskrive løsningen mere detaljeret i følgende artikler.
Kilde: habr.com
