Apache & Nginx. Liés par une chaîne (partie 2)

La semaine dernière dans de la première partie cet article, nous avons décrit comment la combinaison d'Apache et de Nginx est construite chez Timeweb. Nous remercions sincèrement nos lecteurs pour leurs questions et leurs discussions actives ! Aujourd'hui, nous expliquons comment plusieurs versions de PHP sont disponibles sur un seul serveur et pourquoi nous garantissons la sécurité des données de nos clients.

Apache & Nginx. Liés par une chaîne (partie 2)
Hébergement virtuel (L'hébergement partagé) suppose qu'un même serveur héberge de nombreux comptes clients. Sur le compte d'un client, il y a généralement plusieurs sites. Les sites fonctionnent à la fois sur des CMS prêts à l'emploi (comme Bitrix) et sur des systèmes personnalisés. Ainsi, les exigences techniques de tous les systèmes sont différentes, et il est nécessaire de gérer plusieurs versions de PHP au sein d'un même serveur.

En tant que serveur web principal, nous utilisons Nginx : il accepte toutes les connexions externes et délivre le contenu statique. Les autres requêtes sont ensuite proxyfiées vers le serveur web Apache. C'est ici que commence la magie : pour chaque version de PHP, une instance distincte d'Apache est lancée, écoutant un port spécifique. Ce port est inscrit dans l'hôte virtuel du site client.

Le fonctionnement du schéma partagé peut être lu plus en détail dans la première partie de l'article.

Apache & Nginx. Liés par une chaîne (partie 2)
Schéma partagé

Il est important de noter que nous installons des paquets PHP pour différentes versions, car généralement, dans tous les distributions, seule une version de PHP est incluse.

La sécurité avant tout !

L'un des principaux objectifs de l'hébergement virtuel est d'assurer la sécurité des données du client. Les différents comptes, bien qu'ils se trouvent sur un même serveur, sont autonomes et indépendants. Comment cela fonctionne-t-il ?

Les fichiers des sites sont stockés dans les dossiers personnels des utilisateurs, et dans l'hôte virtuel des serveurs web, les chemins requis sont spécifiés. Il est crucial que les serveurs web, Nginx et Apache, aient accès aux fichiers finaux d'un client spécifique, car le serveur web ne s'exécute que sous un seul utilisateur.

Pour Nginx, un patch de sécurité, développé par l'équipe de Timeweb, est utilisé : ce patch change l'utilisateur pour celui spécifié dans le fichier de configuration du serveur web.

Chez d'autres fournisseurs d'hébergement, ce problème peut être résolu, par exemple, par des manipulations avec les droits étendus du système de fichiers (ACL).

Pour faire fonctionner Apache, un module de multiprocessus mpm-itkest utilisé. Il permet de lancer chaque VirtualHost avec son propre identifiant utilisateur et ID de groupe.
Apache & Nginx. Liés par une chaîne (partie 2)
Ainsi, grâce aux opérations décrites ci-dessus, nous obtenons un environnement isolé et sécurisé pour chaque client. En même temps, nous répondons également aux exigences de mise à l'échelle pour l'hébergement mutualisé.

La mise en œuvre de la combinaison Apache et Nginx peut être lue dans de la première partie notre article. De plus, une configuration alternative via le schéma dédié y est également décrite.

Si vous avez des questions pour nos experts, n'hésitez pas à les poser dans les commentaires. Nous ferons de notre mieux pour répondre à toutes vos interrogations ou expliquer plus en détail la solution à un problème dans les prochains articles.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster