Apache & Nginx. Conectate printr-un lanț (partea 2)

Săptămâna trecută, în prima parte această articol, am descris cum este construită combinația Apache și Nginx în Timeweb. Suntem foarte recunoscători cititorilor pentru întrebările și discuțiile active! Astăzi vă povestim cum este implementată disponibilitatea mai multor versiuni PHP pe un singur server și de ce garantăm siguranța datelor clienților noștri.

Apache & Nginx. Legate printr-un lanț (partea 2)
Găzduire virtuală (Shared-hosing) presupune că pe un singur server sunt găzduite numeroase conturi de clienți. Pe contul unui client, în general, există mai multe site-uri. Site-urile funcționează atât pe CMS-uri Standard (de exemplu, Bitrix), cât și pe platforme personalizate. Astfel, cerințele tehnice ale tuturor sistemelor sunt diferite, motiv pentru care pe un singur server trebuie să gestionăm mai multe versiuni PHP.

Ca server web principal, utilizăm Nginx: acesta acceptă toate conexiunile externe și servește conținut static. Celelalte cereri sunt proxificate mai departe, către serverul web Apache. Aici începe magia: pentru fiecare versiune PHP este pornit o instanță separată Apache, care ascultă un port specific. Acest port este specificat în gazda virtuală a site-ului clientului.

Despre funcționarea schemei Shared se poate citi mai detaliat în prima parte a articolului.

Apache & Nginx. Legate printr-un lanț (partea 2)
Schema Shared

Este important de menționat că instalăm pachete PHP pentru diferite versiuni, deoarece de obicei în toate distribuțiile există doar o singură versiune PHP.

Siguranța mai presus de toate!

Una dintre cele mai importante sarcini ale găzduirii virtuale este asigurarea siguranței datelor clientului. Conturile diferite, aflate pe același server, sunt autonome și independente. Cum funcționează acest lucru?

Fișierele site-urilor sunt stocate în directoarele de acasă ale utilizatorilor, iar în gazda virtuală a serverelor web sunt specificate căile necesare. Este important ca serverele web, Nginx și Apache, să aibă acces la fișierele finale ale unui client, deoarece serverul web pornește doar pentru un singur utilizator.

Pentru Nginx se folosește un patch de securitate, dezvoltat de echipa Timeweb: acest patch schimbă utilizatorul cu cel specificat în fișierul de configurare al serverului web.

Alți furnizori de găzduire pot rezolva această problemă, de exemplu, prin manipulări cu drepturi extinse ale sistemului de fișiere (ACL).

Pentru funcționarea Apache se folosește un modul de multiprocesare mpm-itk. Acesta permite rularea fiecărui VirtualHost cu un identificator de utilizator și un ID de grup proprii.
Apache & Nginx. Legate printr-un lanț (partea 2)
Astfel, datorită operațiunilor descrise mai sus, obținem un mediu izolant sigur pentru fiecare client. De asemenea, rezolvăm problemele de scalabilitate pentru hosting-ul Shared.

Despre cum este realizată legătura între Apache și Nginx, puteți citi în prima parte articolul nostru. În plus, acolo este descrisă și o configurație alternativă prin schema Dedicated.

Dacă aveți întrebări pentru experții noștri, scrieți în comentarii. Ne vom strădui să răspundem la tot sau să descriem soluția mai detaliat în articolele următoare.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster