Prošle sedmice u ove članke opisali smo kako je povezan Apache i Nginx u Timeweb-u. Vrlo smo zahvalni čitaocima na pitanjima i aktivnoj diskusiji! Danas pričamo o tome kako je omogućena dostupnost više verzija PHP-a na jednom serveru i zašto garantujemo sigurnost podataka našim klijentima.

Virtuelni hosting (Shared hosting) podrazumeva da je na jednom serveru smešteno više korisničkih naloga. Na nalogu jednog klijenta obično je smešteno nekoliko sajtova. Sajtovi rade kako na gotovim CMS-ovima (na primer, Bitrix), tako i na prilagođenim. Tako su tehnički zahtevi svih sistema različiti, pa se u okviru jednog servera mora upravljati sa više verzija PHP-a.
Kao glavni web server koristimo Nginx: on prima sve veze spolja i isporučuje statički sadržaj. Ostale zahteve prosleđujemo dalje, na web server Apache. Tu počinje magija: za svaku verziju PHP-a pokrenut je poseban primerak Apache-a koji sluša određeni port. Taj port se unosi u virtuelnom hostu korisničkog sajta.
O radu Shared sheme možete pročitati detaljnije u .

Shared shema
Važno je napomenuti da instaliramo PHP pakete za različite verzije, jer obično u svim distribucijama postoji samo jedna verzija PHP-a.
Sigurnost na prvom mestu!
Jedan od glavnih zadataka virtuelnog hostinga je da obezbedi sigurnost podataka klijenta. Različiti nalozi, smešteni na jednom serveru, su samostalni i nezavisni. Kako to funkcioniše?
Datoteke sajtova se čuvaju u glavnim direktorijumima samih korisnika, dok se u virtuelnom hostu web servera navode potrebni putevi. Pri tom je važno da web serveri, Nginx i Apache, dobiju pristup krajnjim datotekama određenog klijenta, jer web server pokreće samo jedan korisnik.
Za Nginx se koristi sigurnosni patch, razvijen od strane tima Timeweb: ovaj patch menja korisnika na onog ko je naveden u konfiguracionom fajlu web servera.
Kod drugih hosting provajdera ovaj problem se može rešiti, na primer, manipulacijama sa proširenim pravima datotečnog sistema (ACL).
Za rad Apache-a koristi se modul za višestruko procesiranje . Omogućuje pokretanje svakog VirtualHosta s vlastitim identifikatorom korisnika i grupnim ID-om.

Tako, zahvaljujući navedenim operacijama, dobivamo sigurnu izoliranu okolinu za svakog klijenta. U isto vrijeme rješavamo i izazove skaliranja za Shared hosting.
Kako je realizirana veza Apache i Nginx može se pročitati u našem članku. Također, tamo je opisana alternativna konfiguracija putem Dedicated sheme.
Ako imate dodatnih pitanja za naše stručnjake, pišite u komentarima. Trudit ćemo se odgovoriti na sve ili detaljnije opisati rješenje problema u sljedećim člancima.
Izvor: habr.com
