Selon W3Techs, Apache reste le serveur Web le plus utilisé en 2016, avec plus de 50 pourcent d’uti­li­sa­tion par l’ensemble des ad­mi­nis­tra­teurs Web. Cependant, si l’on regarde uni­que­ment les 10 000 sites Internet les plus fré­quen­tés, il s’avère que seulement 30 pourcent sont hébergés depuis un serveur Apache, mis à dis­po­si­tion pour la première fois en 1995. Si l’on se restreint aux 1 000 sites Internet les plus po­pu­laires, cela re­pré­sente seulement 27 pourcent. Cela s’explique d’une part par la forte présence des serveurs Google pour héberger les sites les plus po­pu­laires : 10 pourcent des 1 000 sites Web les plus visités (dont tous les sites des services Google) sont hébergés par le géant américain. D’autre part, ce résultat est aussi dû à l’ascension ful­gu­rante de NGINX sur ce marché. Le serveur d’origine Russe en­re­gis­trait en 2010 seulement 4 pourcent de parts de marché. Il re­pré­sente aujourd’hui presque un serveur Web sur deux parmi les 10 000 et 1 000 sites les plus po­pu­laires.

Qu’est-ce que NGINX?

Le logiciel de serveur NGINX, développé par le pro­gram­meur Igor Sysoev, a été distribué en 2004. L’attention était à l’époque centrée sur le besoin d’un serveur de haute per­for­mance, pouvant servir si­mul­ta­né­ment autant de clients Web que possible, et qui ne soit pas trop gourmand en res­sources. Etant donné la pro­pa­ga­tion crois­sante de son serveur Web, NGINX a depuis développé, en parallèle de la version libre gratuite, une version payante nommée NGINX Plus avec une as­sis­tance intégrée et des fonc­tion­na­li­tés sup­plé­men­taires comme un équi­li­breur de charge, ou load balancer en anglais.

NGINX présente, tout comme Apache, une interface modulaire. Cela signifie que dif­fé­rentes fonctions sont proposés sur les modules cor­res­pon­dants, que les ad­mi­nis­tra­teurs choi­sis­sent d’activer ou non. Vous avez par exemple le choix entre ces dif­fé­rentes fonc­tion­na­li­tés :

  • Ap­pli­ca­tion Ac­ce­le­ra­tion (ac­cé­lé­ra­tion de l’ap­pli­ca­tion) : permet un char­ge­ment plus rapide des contenus.
  • Reverse Proxying (proxy inverse) : permet d’utiliser NGINX comme proxy inverse (http, TCP, UDP) pour l’ac­cé­lé­ra­tion des char­ge­ments Web ou l’uti­li­sa­tion d’un proxy email (IMAP, POP3, SMTP).
  • Chif­fre­ment TLS : permet un échange de données sécurisé.
  • Gestion de la bande passante : associe la bande passante optimale pour chaque service proposé.
  • Load Balancing (équi­li­breur de charge) : répartit les demandes de manière à décharger le serveur principal.
  • Vi­deos­trea­ming (streaming vidéo) : offre une haute per­for­mance pour le streaming de fichiers MP4 et FLV.

Tandis qu’Apache ouvre une nouvelle tâche ou processus pour chaque requête client, un serveur NGINX est orienté vers les évè­ne­ments. De cette manière il peut tra­vail­ler sur des demandes de manière asyn­chrone, éco­no­mi­sant ainsi de la mémoire vive et du temps. Ce logiciel de serveur est com­pa­tible avec un grand nombre de systèmes d’ex­ploi­ta­tion, notamment Unix/Linux, Mac OS et Windows.

Installer et con­fi­gu­rer NGINX

Les uti­li­sa­teurs de la version payante NGINX Plus disposent d’une as­sis­tance à l’ins­tal­la­tion. En général, l’ins­tal­la­tion sous Linux s’effectue fa­ci­le­ment et ses dif­fé­rentes dis­tri­bu­tions disposent déjà de NGINX au sein d’un ensemble d’outils intégrés. Dans le cas contraire, il peut être té­lé­chargé sur la page of­fi­cielle de NGINX. Vous trouverez ci-dessous une ex­pli­ca­tion pour installer et con­fi­gu­rer un serveur Web NGINX sous Linux. 1. Avec la commande suivante, vous ac­tua­li­sez les dif­fé­rents éléments du paquet NGINX de manière à posséder les versions les plus récentes (ac­tua­li­sa­tion lancée via la deuxième ligne du code) :

sudo apt-get update
sudo apt-get install nginx

2. NGINX se lance gé­né­ra­le­ment di­rec­te­ment à la suite de cette ac­tua­li­sa­tion. Afin de vérifier si le logiciel fonc­tionne en bonne et due forme, chargez la lan­ding­page de NGINX via le nom de domaine de votre serveur ou l’adresse IP cor­res­pon­dante dans votre na­vi­ga­teur Internet. Si l’ins­tal­la­tion est réussie, vous obtenez le message suivant :

3. Tout ce dont vous aurez besoin pour la con­fi­gu­ra­tion de votre serveur NGINX se trouve dans le dossier /etc/nginx et dans le fichier de con­fi­gu­ra­tion nginx.conf. A chaque fois que vous effectuez des mo­di­fi­ca­tions dans ces fichiers, il est né­ces­saire de re­dé­mar­rer le serveur à l’aide de l’une des commandes suivantes pour qu’elles soient prises en compte :

sudo service nginx reload
sudo service nginx restart

Avec les pa­ra­mètres stop et start, vous pouvez res­pec­ti­ve­ment in­ter­rompre et reprendre le service en cours.

4. La syntaxe du fichier de con­fi­gu­ra­tion présente les ca­rac­té­ris­tiques suivantes :

  • Réglages : tous les réglages com­men­cent par le nom variable respectif. Un espace vide délimite deux arguments et la ligne se termine toujours par un point-virgule.
worker_connections 768;
  • Pa­ra­mètres avancés : certains pa­ra­mètres tels que les events-variable com­por­tent des arguments qui leurs sont propres. Ces sous-di­rec­tives sont entourées par des accolades ({}).
events {
    worker_connections 768;
    multi_accept on;
}
  • Signe dièse (#): Il s’agit de di­rec­tives (ins­truc­tions) dé­sac­ti­vées à l’aide du caractère dièse. En enlevant ce signe, vous réactivez le réglage cor­res­pon­dant.
# multi_accept on;
  • Ta­bu­la­tions et espaces vides : NGINX in­ter­prète les espaces libres multiples et les ta­bu­la­tions comme un seul espace vide. Lors de la con­fi­gu­ra­tion de NGINX, il convient de faire attention à la propreté et li­si­bi­lité de la structure du ficher de con­fi­gu­ra­tion. 

5. Vous trouverez des in­for­ma­tions sup­plé­men­taires sur les dif­fé­rents modules, ainsi que des tutoriels NGINX sur la con­fi­gu­ra­tion de serveurs Web et serveurs proxy sur la page of­fi­cielle an­glo­phone du dé­ve­lop­peur.

Pourquoi NGINX est-il si populaire ?

Plusieurs raisons per­met­tent d’expliquer la po­pu­la­rité crois­sante de NGINX. Tout d’abord, ce logiciel de serveur Web est tout à fait harmonisé avec les attentes de nombreux projets Web. En effet NGINX permet de gérer un nombre élevé de requêtes client si­mul­ta­né­ment, tout en ménageant les res­sources utilisées. Ainsi, cette solution est la réponse parfaite pour les trans­mis­sions de données réduites sur les appareils mobiles. Les contenus sont donc chargés ra­pi­de­ment avec NGINX. De plus, ce produit open source développé en Russie convainc grâce à ses pos­si­bi­li­tés d’uti­li­sa­tion flexibles. Outre le serveur http classique, NGINX propose aussi une fonction de reverse-proxying, per­met­tant par exemple la mise en place d’un serveur proxy ou d’un load balancer. NGINX n’est cependant pas toujours le meilleur choix de serveur Web : un hé­ber­ge­ment partagé de domaines protégés par un mot de passe ou attribué en interne peut être difficile à réaliser. Les réé­cri­tures (rewriting) que cela implique ne peuvent qu’être mises dans le dossier principal de con­fi­gu­ra­tion et le serveur doit être relancé par la suite. Des erreurs peuvent avoir des con­sé­quences sur tous les acteurs d’un hé­ber­ge­ment partagé. Un serveur Apache apporte quant à lui un avantage non né­gli­geable, celui d’attribuer des fichiers .htaccess in­di­vi­duels séparés.

Aller au menu principal