Apache en Nginx. Verbonden door één keten (deel 2)

Vorige week in het eerste deel In dit artikel beschreven we hoe de Apache en Nginx combinatie in Timeweb werd gebouwd. Wij zijn de lezers zeer dankbaar voor hun vragen en actieve discussie! Vandaag vertellen we u hoe de beschikbaarheid van verschillende versies van PHP op één server wordt geïmplementeerd en waarom we gegevensbeveiliging aan onze klanten garanderen.

Apache en Nginx. Verbonden door één keten (deel 2)
Gedeelde hosting (Shared hosting) gaat ervan uit dat veel klantaccounts op één server worden gehost. In de regel bevat één klantaccount meerdere websites. Websites werken zowel op kant-en-klaar CMS (bijvoorbeeld Bitrix) als op maat gemaakte CMS. De technische vereisten van alle systemen zijn dus verschillend, dus meerdere versies van PHP moeten binnen dezelfde server worden beheerd.

We gebruiken Nginx als de belangrijkste webserver: het accepteert alle verbindingen van buitenaf en serveert statische inhoud. We proxy de resterende verzoeken verder naar de Apache-webserver. Dit is waar de magie begint: elke versie van PHP voert een afzonderlijke Apache-instantie uit die op een specifieke poort luistert. Deze poort wordt geregistreerd in de virtuele host van de clientsite.

Meer over de werking van de Gedeelde regeling leest u in het eerste deel van het artikel.

Apache en Nginx. Verbonden door één keten (deel 2)
Gedeeld schema

Het is belangrijk op te merken dat we PHP-pakketten voor verschillende versies installeren, omdat meestal alle distributies slechts één versie van PHP hebben.

Veiligheid eerst!

Een van de belangrijkste taken van shared hosting is het waarborgen van de veiligheid van klantgegevens. Verschillende accounts, die zich op dezelfde server bevinden, zijn onafhankelijk en onafhankelijk. Hoe het werkt?

Websitebestanden worden opgeslagen in de homedirectory's van de gebruikers zelf, en de vereiste paden worden gespecificeerd in de virtuele host van de webservers. Het is belangrijk dat de webservers, Nginx en Apache, toegang hebben tot de uiteindelijke bestanden van een specifieke client, aangezien de webserver door slechts één gebruiker wordt gestart.

Nginx maakt gebruik van een beveiligingspatch die is ontwikkeld door het Timeweb-team: deze patch verandert de gebruiker in de gebruiker die is opgegeven in het configuratiebestand van de webserver.

Voor andere hostingproviders kan dit probleem bijvoorbeeld worden opgelost door manipulatie van uitgebreide bestandssysteemrechten (ACL).

Apache gebruikt een multiprocessing-module om te draaien mpm-itk. Hiermee kan elke VirtualHost worden uitgevoerd met zijn eigen gebruikers-ID en groeps-ID.
Apache en Nginx. Verbonden door één keten (deel 2)
Dankzij de hierboven beschreven handelingen verkrijgen we dus voor elke klant een veilige, geïsoleerde omgeving. Tegelijkertijd lossen we ook schaalproblemen voor Shared hosting op.

Hoe de Apache en Nginx combinatie wordt geïmplementeerd kun je inlezen het eerste deel ons artikel. Daarnaast wordt daar ook een alternatieve configuratie via het Dedicated-schema beschreven.

Als u vragen heeft voor onze experts, schrijf dan in de reacties. We zullen proberen alles te beantwoorden of de oplossing voor het probleem in meer detail te beschrijven in de volgende artikelen.

Bron: www.habr.com

Voeg een reactie