Apache avec Nginx

Vous pouvez optimiser le fonctionnement du serveur Web qui héberge les sites Web des clients en installant Nginx, un autre serveur Web extrêmement performant qui est généralement utilisé en tant que serveur proxy inverse. Ce serveur Web a été spécialement conçu pour prendre en charge de larges volumes de contenu statique (comme les images, vidéos, css, xml, etc.). Contrairement à Apache, Nginx est beaucoup plus efficace pour traiter un gros volume de connexions simultanées. Autre atout de ce serveur Web par rapport à Apache : Nginx utilise beaucoup moins de mémoire par connexion client.

Pour profiter de tous les avantages de Nginx, Plesk le configure en tant que serveur proxy inverse qui se situe entre Internet et Apache (cf. le schéma ci-dessous). Autrement dit, Nginx devient un serveur Web frontal qui traite toutes les requêtes entrantes des visiteurs des sites. Les requêtes sont envoyées vers Apache, qui, en retour, différencie les requêtes pour le contenu statique et dynamique. Si une requête est destinée à un fichier statique (comme jpg, css, html, etc. ), Apache passe la demande à tous les gestionnaires ou gestionnaires enregistrés (applique la configuration au niveau du répertoire .htaccess, réécrit une URL, etc.) et renvoie à Nginx une réponse qui ne contient qu'un emplacement du fichier requis sur le système de fichiers. Nginx localise le fichier et l'envoie au client. Si la requête est destinée à un fichier dynamique (comme un script PHP), Apache exécute le fichier et envoie la réponse à Nginx, qui la fournit au client.

Une telle combinaison de Nginx et Apache présente les avantages suivants :

Pour en savoir plus sur les détails techniques concernant la manière dont Plesk traite les requêtes HTTP à l'aide de Nginx, poursuivez la lecture de cette section. Pour en savoir plus sur l'activation de l'assistance de Nginx dans Plesk, consultez la section Installer Nginx. Si vous ne voulez pas utiliser Nginx, faites d'Apache votre serveur Web frontal en suivant les instructions décrites dans la section Désactiver Nginx.

Traiter les requêtes HTTP dans Plesk avec Nginx

Pour intégrer sans problème Nginx à Apache, Plesk utilise deux modules Apache supplémentaires :

Regardons de plus près comment Plesk traite les requêtes pour le contenu statique et dynamique à l'aide de ces modules.

La séquence de traitement d'une requête HTTP pour un fichier statique se présente comme suit (cf. le diagramme) :

  1. Un client envoie une requête à un serveur Web.
  2. Nginx ajoute les en-têtes X-Accel-Internal (utilisée par mod_aclr2) et X-Forwarded-For (contient l'adresse IP du client) à la requête et envoie la demande à Apache.
  3. Apache reçoit la requête et commence à la traiter avec les gestionnaires enregistrés (applique la configuration .htaccess, réécrit l'URL, etc.). À cette étape, mod_rpaf remplace l'adresse IP du serveur Nginx dans la variable d'Apache REMOTE_ADDR par l'adresse du client à partir de l'en-tête X-Forwarded-For.
  4. Une fois la requête traitée par tous les gestionnaires enregistrés, elle atteint mod_aclr2. Le gestionnaire vérifie la présence de l'en-tête X-Accel-Internal. Si l'en-tête est présent, le module envoie à Nginx une réponse avec une longueur de contenu zéro et l'en-tête X-Accel-Redirect. Cet en-tête contient l'emplacement exact du fichier tel qu'il est déterminé par mod_aclr2.
  5. Une fois que Nginx reçoit la réponse, il localise le fichier et le fournit au client.

Le schéma ci-dessous est un exemple illustrant comment Plesk traite la requête d'un fichier GIF de 2 Ko.

static_seq

Lorsque les requêtes sont traitées pour du contenu dynamique, les étapes de 1 à 3 sont identiques. Ensuite, la requête passe dans le gestionnaire du module Apache approprié (mod_php, mod_perl, mod_cgi, etc.) : la requête n'atteint jamais mod_aclr2 (sauf pour les requêtes SSI). Le gestionnaire génère une réponse et l'envoie à Nginx, qui, en retour, fournit la réponse au client. Le schéma ci-dessous illustre comment Plesk traite une requête pour un fichier PHP.


Dans cette section :

Installer Nginx

Désactiver Nginx

 

Installer Nginx

Si vous procédez à une première installation de Plesk, Nginx sera activé par défaut. Si vous mettez à niveau à partir de versions antérieures, vous pouvez ajouter le composant Nginx à tout moment après la mise à niveau dans Outils & Paramètres > Mises à jour et à niveau > Ajouter/Supprimer des composants. Une fois le composant ajouté, vous devez exécuter le service Reverse Proxy Server (Nginx) dans Outils & Paramètres > Gestion des services.

Vous pouvez voir la version du serveur Nginx installé dans Outils & Paramètres > Composants du serveur.

nginx version

 

Désactiver Nginx

Pour revenir à la configuration avec un seul serveur Web Apache, stoppez le service Reverse Proxy Server (Nginx) dans Outils & Paramètres > Gestion des services.

nginx_stop

Pour rétablir Nginx dans le serveur Web frontal, lancez le service Reverse Proxy Server (Nginx).

Remarque : les opérations de démarrage et d'arrêt du service Reverse Proxy Server (Nginx) ne démarrent et n'arrêtent pas simplement Nginx, elles activent la configuration du serveur Web (combinaison de Nginx et d'Apache ou juste Apache en tant que serveur Web frontal). L'opération de redémarrage fonctionne de la même manière pour tous les autres services : le service Nginx est redémarré.