Apache et Nginx. Attaché par une chaîne (partie 2)

La semaine dernière, dans la première partie de cet article, nous avons décrit comment les liaisons Apache et Nginx sont créées dans Timeweb. Nous sommes très reconnaissants aux lecteurs pour leurs questions et leur discussion active! Aujourd'hui, nous allons vous expliquer comment se réalise la disponibilité de plusieurs versions de PHP sur un serveur et pourquoi nous garantissons la sécurité des données à nos clients.





Hébergement virtuel ( hébergement partagé) signifie qu'un seul serveur, une pluralité de comptes clients. Le compte d'un client, en règle générale, contient plusieurs sites. Les sites Web fonctionnent à la fois sur des CMS prêts à l'emploi (par exemple, Bitrix) et sur des CMS personnalisés. Ainsi, les exigences techniques de tous les systèmes sont différentes, il est donc nécessaire de gérer plusieurs versions de PHP au sein d'un même serveur.



Nous utilisons Nginx comme serveur Web principal: il accepte toutes les connexions de l'extérieur et sert du contenu statique. Nous transmettons le reste des requêtes au serveur Web Apache. C'est là que la magie commence: pour chaque version de PHP, une instance Apache distincte est lancée, à l'écoute sur un port spécifique. Ce port est enregistré dans l'hôte virtuel du site client.



Vous pouvez en savoir plus sur le travail du schéma partagé dans la première partie de l'article .





Schéma partagé



Il est important de noter que nous mettons les packages PHP sous différentes versions, car généralement toutes les distributions n'ont qu'une seule version PHP.



La sécurité d'abord!



L'une des principales tâches de l'hébergement mutualisé est d'assurer la sécurité des données clients. Différents comptes, étant sur un serveur, sont indépendants et indépendants. Comment ça fonctionne?



Les fichiers de site sont stockés dans les répertoires personnels des utilisateurs eux-mêmes et les chemins nécessaires sont spécifiés dans l'hôte virtuel des serveurs Web. Ce faisant, il est important que les serveurs Web, Nginx et Apache, aient accès aux fichiers finaux d'un client spécifique, car le serveur Web est lancé à partir d'un seul utilisateur.



Nginx utilise un correctif de sécurité développé par l'équipe Timeweb: ce correctif remplace l'utilisateur par celui spécifié dans le fichier de configuration du serveur Web.



D'autres fournisseurs d'hébergement peuvent résoudre ce problème, par exemple, en manipulant les droits de système de fichiers étendus (ACL).



Apache utilise le module multitraitement mpm-itk . Il permet à chaque VirtualHost de fonctionner avec son propre ID utilisateur et ID de groupe.



Ainsi, grâce aux opérations décrites ci-dessus, nous obtenons un environnement isolé sécurisé pour chaque client. Dans le même temps, nous résolvons également les problèmes de mise à l'échelle pour l'hébergement mutualisé.



Vous pouvez lire comment les liaisons Apache et Nginx sont implémentées dans la première partie de notre article. De plus, une configuration alternative par le biais du schéma dédié y est également décrite.



Si vous avez des questions pour nos experts, écrivez dans les commentaires. Nous essaierons de répondre à tout ou de décrire la solution au problème plus en détail dans les articles suivants.



All Articles