{"id":810,"date":"2024-01-16T07:00:10","date_gmt":"2024-01-16T07:00:10","guid":{"rendered":"https:\/\/poyesis.fr\/blogs\/?p=810"},"modified":"2025-02-03T07:57:58","modified_gmt":"2025-02-03T07:57:58","slug":"quest-ce-que-nginx-et-pourquoi-les-sites-web-en-raffolent","status":"publish","type":"post","link":"https:\/\/poyesis.fr\/blogs\/quest-ce-que-nginx-et-pourquoi-les-sites-web-en-raffolent\/","title":{"rendered":"Qu&rsquo;est-ce que Nginx et pourquoi les sites web en raffolent ?"},"content":{"rendered":"<p>Si je vous dis IBM, Netflix, Dropbox ou encore X, \u00e0 quoi est-ce que vous pensez ?<\/p>\n<p>Aux gigantesques quantit\u00e9s de data que ces g\u00e9ants amassent ? Peut-\u00eatre.<\/p>\n<p>Aux myriades de plateformes qu\u2019ils utilisent pour les collecter ? Peut-\u00eatre.<\/p>\n<p>Tous ces g\u00e9ants ont un point en commun : ils utilisent tous le m\u00eame serveur web, Nginx ( \u00e0 prononcer \u201cEngine X\u201d).<\/p>\n<p>Et ils ne sont pas les seuls. Selon W3techs.com, 34.1 % des sites web s\u2019appuient sur Nginx pour g\u00e9rer leurs requ\u00eates ou servir d\u2019API.<\/p>\n<p>Alors, naturellement, nous nous sommes demand\u00e9s qu\u2019est-ce qui se cache derri\u00e8re ce succ\u00e8s fou ?<\/p>\n<p>D\u2019autant qu\u2019\u00e0 la base, Nginx n\u2019est qu\u2019un petit moteur d\u00e9velopp\u00e9 par un ing\u00e9nieur russe en solo dans son coin.<\/p>\n<p>\u00c0 quoi est-ce qu\u2019il sert\u202f? Comment est-ce qu\u2019il fonctionne\u202f? Pourquoi est-ce que les cr\u00e9ateurs de sites web le pr\u00e9f\u00e8rent \u00e0 Apache ? Et enfin, est-ce que vous devez vous aussi l\u2019utiliser ?<\/p>\n<p>On vous d\u00e9voile tout dans cet article.<\/p>\n<p>Bonne lecture\u00a0\ud83d\ude0a<\/p>\n<h2>Les origines de Nginx : un probl\u00e8me \u00e0 10\u00a0000 connexions<\/h2>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter size-full wp-image-818\" src=\"https:\/\/poyesis.fr\/blogs\/wp-content\/uploads\/2024\/01\/serveurs.png\" alt=\"serveurs\" width=\"500\" height=\"889\" srcset=\"https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/serveurs.png 500w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/serveurs-169x300.png 169w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>Tout comme l\u2019intelligence artificielle a chamboul\u00e9 notre quotidien en 2023, l\u2019arriv\u00e9e de Nginx sur le march\u00e9 a \u00e9t\u00e9 un vrai game-changer.<\/p>\n<p>Pour comprendre pourquoi, remontons l\u2019histoire de Nginx.<\/p>\n<p>Son histoire commence 20 ans apr\u00e8s le d\u00e9but d\u2019internet. Plus pr\u00e9cis\u00e9ment vers sa d\u00e9mocratisation dans les ann\u00e9es 90.<\/p>\n<p>\u00c0 cette \u00e9poque, de plus en plus de personnes arpentent les routes du web gr\u00e2ce \u00e0 leurs navigateurs web.<\/p>\n<p>Sauf qu\u2019il y a eu impr\u00e9vu\u00a0: la capacit\u00e9 des serveurs \u00e0 router les requ\u00eates entrantes ne suivaient pas la cadence.<\/p>\n<p>D\u00e8s que 10 000 connexions simultan\u00e9es arrivaient sur un seul serveur, \u00e7a entra\u00eenait un bug.<\/p>\n<p>Toutes les compagnies ont donc cherch\u00e9 \u00e0 am\u00e9liorer leurs hardwares\u2026 sans succ\u00e8s.<\/p>\n<p>Et la raison de leurs \u00e9checs \u00e0 surmonter ce probl\u00e8me a \u00e9t\u00e9 mise en \u00e9vidence en 1999 dans l\u2019article <a href=\"http:\/\/www.kegel.com\/c10k.html\" target=\"_blank\" rel=\"noopener\">\u00ab\u00a0The C10K Problem\u00a0\u00bb<\/a> de Dan Kegel.<\/p>\n<p>Dans cet article, l\u2019ing\u00e9nieur d\u00e9montre que le hardware n\u2019est pas la raison principale qui emp\u00eache les sites web de g\u00e9rer 10\u00a0000 visiteurs en m\u00eame temps.<\/p>\n<p>La cause vient plus t\u00f4t du mauvais usage des ressources des serveurs par les syst\u00e8mes d\u2019exploitation.<\/p>\n<p>3 ans plus tard, en 2002, en plein c\u0153ur de la Russie, la soci\u00e9t\u00e9 \u00e9ditrice du moteur de recherche Rambler \u2013 un des sites web les plus fr\u00e9quent\u00e9s de Russie avec <a href=\"https:\/\/fr.semrush.com\/trending-websites\/ru\/all\" target=\"_blank\" rel=\"noopener\">64.19 M de visiteurs en novembre 2023<\/a> &#8211; embauche un d\u00e9veloppeur.<\/p>\n<p>Sa mission est simple\u00a0: aider le site \u00e0 g\u00e9rer l\u2019afflux massif d\u2019internautes russes pour faire face \u00e0 la popularit\u00e9 croissante du service.<\/p>\n<p>Et Igor n\u2019y va pas par 4 chemins. Apr\u00e8s deux ans d\u2019efforts acharn\u00e9s, il cr\u00e9e un logiciel open-source pour g\u00e9rer le trafic de Rambler\u00a0: Nginx.<\/p>\n<p>Son logiciel n\u2019a qu\u2019un objectif\u00a0: offrir le maximum de performance,de stabilit\u00e9 et optimiser les performances \u00e0 l\u2019\u00e9chelle.<\/p>\n<p>Au moment o\u00f9 nous \u00e9crivons cet article, nous sommes le 27 d\u00e9cembre 2023.<\/p>\n<p>Et lorsqu\u2019on regarde les statistiques, c\u2019est sans appel\u00a0: NGINX est LE logiciel de serveur web le plus utilis\u00e9.<\/p>\n<figure id=\"attachment_815\" aria-describedby=\"caption-attachment-815\" style=\"width: 348px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"size-full wp-image-815\" src=\"https:\/\/poyesis.fr\/blogs\/wp-content\/uploads\/2024\/01\/Pourcentage-de-site-web-utilisant-divers-serveurs-web-source-W3techs.com_.png\" alt=\"Pourcentage d'utilisation des diff\u00e9rents serveurs web au monde en juin 2023\" width=\"348\" height=\"465\" srcset=\"https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Pourcentage-de-site-web-utilisant-divers-serveurs-web-source-W3techs.com_.png 348w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Pourcentage-de-site-web-utilisant-divers-serveurs-web-source-W3techs.com_-225x300.png 225w\" sizes=\"(max-width: 348px) 100vw, 348px\" \/><figcaption id=\"caption-attachment-815\" class=\"wp-caption-text\">Pourcentage d&rsquo;utilisation des diff\u00e9rents serveurs web au monde en d\u00e9cembre 2023<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p><i>Source\u00a0: <\/i><a href=\"https:\/\/www.netcraft.com\/blog\/june-2023-web-server-survey\/\" target=\"_blank\" rel=\"noopener\"><i>W3tech<\/i><i>s.com<\/i><\/a><\/p>\n<figure id=\"attachment_816\" aria-describedby=\"caption-attachment-816\" style=\"width: 525px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"size-large wp-image-816\" src=\"https:\/\/poyesis.fr\/blogs\/wp-content\/uploads\/2024\/01\/Pourcentage-dutilisation-des-differents-serveurs-web-au-monde-en-juin-2023-1024x389.png\" alt=\"Pourcentage d'utilisation des diff\u00e9rents serveurs web au monde en juin 2023\" width=\"525\" height=\"199\" srcset=\"https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Pourcentage-dutilisation-des-differents-serveurs-web-au-monde-en-juin-2023-1024x389.png 1024w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Pourcentage-dutilisation-des-differents-serveurs-web-au-monde-en-juin-2023-300x114.png 300w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Pourcentage-dutilisation-des-differents-serveurs-web-au-monde-en-juin-2023-768x292.png 768w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Pourcentage-dutilisation-des-differents-serveurs-web-au-monde-en-juin-2023-750x285.png 750w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Pourcentage-dutilisation-des-differents-serveurs-web-au-monde-en-juin-2023.png 1035w\" sizes=\"(max-width: 525px) 100vw, 525px\" \/><figcaption id=\"caption-attachment-816\" class=\"wp-caption-text\">Pourcentage d&rsquo;utilisation des diff\u00e9rents serveurs web au monde en juin 2023<\/figcaption><\/figure>\n<p><a href=\"https:\/\/www.netcraft.com\/blog\/june-2023-web-server-survey\/\" target=\"_blank\" rel=\"noopener\"><i>Pourcentage d&rsquo;utilisation des diff\u00e9rents serveurs web au monde en juin 2023<\/i><\/a><\/p>\n<p>M\u00eame des logiciels sous licence appartenant aux GAFAM comme Microsoft-IIS n\u2019arrivent pas \u00e0 le concurrencer.<\/p>\n<p>Maintenant, rentrons plus en d\u00e9tails dans ce qu\u2019est vraiment NGINX.<\/p>\n<h2>Qu\u2019est-ce que NGINX et comment est-ce qu\u2019il fonctionne\u00a0?<\/h2>\n<p>Nginx est un logiciel type serveur web open-source dont les ma\u00eetres mots sont performance, utilisation la plus efficace possible des ressources des serveurs et rapidit\u00e9.<\/p>\n<p>Nginx est con\u00e7u pour utiliser tr\u00e8s peu de m\u00e9moire et maximiser la simultan\u00e9it\u00e9. Et cette souplesse pla\u00eet \u00e9norm\u00e9ment aux \u00e9quipes de d\u00e9veloppement web et mobiles qui l\u2019utilisent aussi comme :<\/p>\n<ul>\n<li aria-level=\"1\">Proxy inverse\u00a0;<\/li>\n<li aria-level=\"1\">Cache HTTP\u00a0;<\/li>\n<li aria-level=\"1\">\u00c9quilibreur de charge, etc.<\/li>\n<\/ul>\n<p>La particularit\u00e9 de Nginx vient de son mode de fonctionnement.<\/p>\n<p>Ainsi, contrairement \u00e0 la plupart des autres serveurs du march\u00e9 qui sont multi-processus \u2013 un visiteur = un nouveau processus \u2013 Nginx est mono-processus.<\/p>\n<p>Tout le trafic est g\u00e9r\u00e9 dans un seul processus qui utilise une architecture ma\u00eetre-esclave. De plus, l\u2019outil open-source repose aussi sur une approche asynchrone et \u00e9v\u00e8nementielle.<\/p>\n<p>Cette conception logicielle atypique lui permet d\u2019ex\u00e9cuter plusieurs requ\u00eates simultan\u00e9ment sans craindre l\u2019interblocage des processus (ou deadlock).<\/p>\n<p>En effet, un deadlock ne se produit que si plusieurs processus concurrents souhaitent acc\u00e9der \u00e0 la m\u00eame ressource non-partageable en m\u00eame temps. En attendant d\u2019y acc\u00e9der, chacun conserve un acc\u00e8s exclusif \u00e0 une ressource convoit\u00e9e par un autre processus.<\/p>\n<p>Raison pour laquelle Nginx est pl\u00e9biscit\u00e9 par les d\u00e9veloppeurs lors de la conception d\u2019une plateforme digitale validant ces conditions :<\/p>\n<ul>\n<li aria-level=\"1\">la plateforme web ou l\u2019app mobile re\u00e7oit \u00e9norm\u00e9ment de requ\u00eates HTTPS entrantes\u00a0;<\/li>\n<li aria-level=\"1\">des contenus statiques doivent \u00eatre massivement distribu\u00e9s\u00a0;<\/li>\n<li aria-level=\"1\">le nombre de requ\u00eates simultan\u00e9es attendues est \u00e9lev\u00e9.<\/li>\n<\/ul>\n<p>Autre cas d\u2019usage de Nginx\u00a0: il peut servir d\u2019API entre vos diff\u00e9rents micro-services.<\/p>\n<p>Pour terminer, voici quelques caract\u00e9ristiques notables de Nginx\u00a0:<\/p>\n<ul>\n<li aria-level=\"1\">Proxy invers\u00e9 avec mise en cache\u00a0;<\/li>\n<li aria-level=\"1\">IPv\u00a0;<\/li>\n<li aria-level=\"1\">\u00c9quilibrage de charge\u00a0;<\/li>\n<li aria-level=\"1\">TLS\/SSI avec SNI.<\/li>\n<\/ul>\n<p>Tout ceci gr\u00e2ce \u00e0 l\u2019architecture ma\u00eetre-esclave. Et justement, parlons-en de cette architecture.<\/p>\n<h2>Comment fonctionne l\u2019architecture de NGINX\u00a0?<\/h2>\n<p>Comme dit plus haut, Nginx repose sur une architecture ma\u00eetre-esclave asynchrone et sur des mod\u00e8les \u00e9v\u00e9nementiels non-bloquants.<\/p>\n<p>Concr\u00e8tement, voici comment une instance de Nginx fonctionne\u00a0:<\/p>\n<ul>\n<li aria-level=\"1\">les travailleurs acceptent de nouvelles requ\u00eates HTTP\/HTTPS entrantes \u00e0 partir d\u2019un socket partag\u00e9.<\/li>\n<li aria-level=\"1\">\u00c0 l\u2019int\u00e9rieur de chaque travailleur, une boucle est effectu\u00e9e, permettant \u00e0 chacun de traiter des milliers de requ\u00eates sans bloquer les autres\u00a0;<\/li>\n<li aria-level=\"1\">les processus ma\u00eetres coordonnent l\u2019ex\u00e9cution des t\u00e2ches des travailleurs en cr\u00e9ant et en g\u00e9rant des sockets.<\/li>\n<\/ul>\n<p>De plus, pour diminuer les temps d\u2019acc\u00e8s aux fichiers, les chargeurs de cache des proxys ajoutent les donn\u00e9es dans la m\u00e9moire tampon du moteur. Ainsi, m\u00eame si le navigateur client est lent, son maigre d\u00e9bit ne va pas ralentir le proxy.<\/p>\n<p>Ce fonctionnement pr\u00e9sente 2 diff\u00e9rences majeures avec le second serveur web le plus utilis\u00e9 Apache\u00a0:<\/p>\n<ol>\n<li aria-level=\"1\">Nginx a une architecture mono-thread alors qu\u2019Apache a une architecture multi-processus. De plus, la version mono-thread d\u2019Apache, Apache Tomcat, ne peut g\u00e9rer qu\u2019une seule connexion\u00a0;<\/li>\n<li aria-level=\"1\">Son fonctionnement fait qu\u2019il est plus rapide qu\u2019Apache pour distribuer des contenus statiques. Par contre, \u00e7a l\u2019emp\u00eache aussi de prendre en charge nativement les contenus dynamiques. Par cons\u00e9quent, les d\u00e9veloppeurs d\u2019applications utilisant Nginx sont forc\u00e9s d\u2019utiliser un service tiers pour cela. Ce qui n\u2019est pas le cas d\u2019Apache.<\/li>\n<\/ol>\n<h2>5 bonnes raisons d\u2019adopter Nginx<\/h2>\n<p>S\u2019il vous fallait 5 raisons d\u2019utiliser Nginx, les voici\u00a0:<\/p>\n<ul>\n<li aria-level=\"1\">r\u00e9duire le temps de chargement de vos sites web et \u00e9viter les probl\u00e8mes de latence\u00a0;<\/li>\n<li aria-level=\"1\">la possibilit\u00e9 de faire des mises \u00e0 jour \u00e0 la vol\u00e9e sans avoir \u00e0 interrompre vos services\u00a0;<\/li>\n<li aria-level=\"1\">sa capacit\u00e9 \u00e0 servir de proxy inverse et \u00e0 dispatcher le trafic entre plusieurs serveurs et clients de mani\u00e8re fluide via des algorithmes de routage intelligents\u00a0;<\/li>\n<li aria-level=\"1\">le fait d\u2019avoir peu de composants \u00e0 g\u00e9rer\u00a0;<\/li>\n<li aria-level=\"1\">l\u2019augmentation de la vitesse globale de vos services.<\/li>\n<\/ul>\n<p>Maintenant, voyons pourquoi les h\u00e9bergeurs web l\u2019adorent.<\/p>\n<h2>Pourquoi les h\u00e9bergeurs adorent NGINX (3+1 raison)<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-814\" src=\"https:\/\/poyesis.fr\/blogs\/wp-content\/uploads\/2024\/01\/image4.png\" alt=\"\" width=\"500\" height=\"751\" srcset=\"https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/image4.png 500w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/image4-200x300.png 200w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>Vous vous souvenez lorsque nous avons des graphes plus haut\u00a0?<\/p>\n<p>Ceux montrant la <i>moyenne<\/i> des parts de march\u00e9 de Nginx dans les sites web\u00a0?<\/p>\n<p>En r\u00e9alit\u00e9, ils cachent une grande disparit\u00e9.<\/p>\n<p>Jugez de vous-m\u00eame via ce graphique fourni par w3Techs.com\u00a0:<\/p>\n<figure id=\"attachment_817\" aria-describedby=\"caption-attachment-817\" style=\"width: 533px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-817\" src=\"https:\/\/poyesis.fr\/blogs\/wp-content\/uploads\/2024\/01\/Repartition-des-serveurs-web-entre-Nginx-et-Apache-selon-leur-trafic-le-27-decembre-2023.png\" alt=\"R\u00e9partition des serveurs web entre Nginx et Apache selon leur trafic le 27 d\u00e9cembre 2023\" width=\"533\" height=\"287\" srcset=\"https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Repartition-des-serveurs-web-entre-Nginx-et-Apache-selon-leur-trafic-le-27-decembre-2023.png 533w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Repartition-des-serveurs-web-entre-Nginx-et-Apache-selon-leur-trafic-le-27-decembre-2023-300x162.png 300w\" sizes=\"(max-width: 533px) 100vw, 533px\" \/><figcaption id=\"caption-attachment-817\" class=\"wp-caption-text\">R\u00e9partition des serveurs web entre Nginx et Apache selon leur trafic le 27 d\u00e9cembre 2023<\/figcaption><\/figure>\n<p>Vous avez remarqu\u00e9 la diff\u00e9rence entre les deux serveurs\u00a0?<\/p>\n<p>\u2026<\/p>\n<p>R\u00e9ponse\u00a0: Nginx est de plus en plus utilis\u00e9 \u00e0 mesure que le trafic des sites web pris en compte est \u00e9lev\u00e9.<\/p>\n<p>Pour le top 1.000.000 des plateformes les plus visit\u00e9es, Nginx repr\u00e9sente 31.9% des parts de march\u00e9, contre 22.8 % pour Apache web server.<\/p>\n<p>D\u00e8s qu\u2019on atteint le top 100.000 des plateformes les plus visit\u00e9es, Nginx cro\u00eet jusqu\u2019\u00e0 atteindre 32 % alors qu\u2019Apache recule \u00e0 17.6 %.<\/p>\n<p>Et ainsi de suite.<\/p>\n<p>Si les applications web \u00e0 fort trafic comme Netflix ou le CMS WordPress, les h\u00e9bergeurs comme OVH et des gestionnaires de CDN, misent sur Nginx, c\u2019est pour 4 raisons\u00a0:<\/p>\n<ul>\n<li aria-level=\"1\">les performances hors normes \u00e0 l\u2019\u00e9chelle offertes par l\u2019outil ;<\/li>\n<li aria-level=\"1\">la r\u00e9duction de la vuln\u00e9rabilit\u00e9 aux attaques par force brute (DDoS) gr\u00e2ce \u00e0 des fonctions telles que le filtrage des requ\u00eates, le blocage des adresses IP et le contr\u00f4le des acc\u00e8s\u00a0;<\/li>\n<li aria-level=\"1\">la mise en cache rapide et simple\u00a0;<\/li>\n<li aria-level=\"1\">la scalabilit\u00e9 et la tol\u00e9rance aux fautes\u00a0: concr\u00e8tement, vous pouvez ajouter ou retirer un micro-service sans affecter l\u2019exp\u00e9rience utilisateur\u00a0;<\/li>\n<li aria-level=\"1\">le support natif pour les requ\u00eates HTTPS, qui permettent de s\u00e9curiser les \u00e9changes clients-serveurs via le cryptage SSL\/TLS\u00a0;<\/li>\n<li aria-level=\"1\">la prise en charge avec la plupart des web app\u00a0;<\/li>\n<li aria-level=\"1\">une vaste communaut\u00e9 et des millions de tutoriels.<\/li>\n<\/ul>\n<p>Enfin, le c\u0153ur m\u00eame de Nginx reste sa capacit\u00e9 \u00e0 g\u00e9rer plusieurs connexions entrantes en utilisant le moins de m\u00e9moire possible. Et l\u00e0-dessus, les statistiques issues des essais sur les benchmarks ne mentent pas.<\/p>\n<figure id=\"attachment_819\" aria-describedby=\"caption-attachment-819\" style=\"width: 968px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-819\" src=\"https:\/\/poyesis.fr\/blogs\/wp-content\/uploads\/2024\/01\/Utilisation-des-ressources-entre-Nginx-et-Apache.jpg\" alt=\"Utilisation des ressources entre Nginx et Apache\" width=\"968\" height=\"450\" srcset=\"https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Utilisation-des-ressources-entre-Nginx-et-Apache.jpg 968w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Utilisation-des-ressources-entre-Nginx-et-Apache-300x139.jpg 300w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Utilisation-des-ressources-entre-Nginx-et-Apache-768x357.jpg 768w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Utilisation-des-ressources-entre-Nginx-et-Apache-750x349.jpg 750w\" sizes=\"(max-width: 968px) 100vw, 968px\" \/><figcaption id=\"caption-attachment-819\" class=\"wp-caption-text\">Utilisation des ressources entre Nginx et Apache<\/figcaption><\/figure>\n<p><i>Source : https:\/\/blog.coolicehost.com\/ten-great-advantages-of-nginx\/<\/i><\/p>\n<h2>3 Mani\u00e8res d\u2019utiliser NGINX pour augmenter les performances de votre site web et sa s\u00e9curit\u00e9\u00a0?<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-812\" src=\"https:\/\/poyesis.fr\/blogs\/wp-content\/uploads\/2024\/01\/Developpeuse-web-devant-deux-ecrans-684x1024.png\" alt=\"D\u00e9veloppeuse web devant deux \u00e9crans\" width=\"525\" height=\"786\" srcset=\"https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Developpeuse-web-devant-deux-ecrans-684x1024.png 684w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Developpeuse-web-devant-deux-ecrans-200x300.png 200w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Developpeuse-web-devant-deux-ecrans-768x1150.png 768w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Developpeuse-web-devant-deux-ecrans-1026x1536.png 1026w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Developpeuse-web-devant-deux-ecrans-750x1123.png 750w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Developpeuse-web-devant-deux-ecrans-1140x1707.png 1140w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Developpeuse-web-devant-deux-ecrans.png 1335w\" sizes=\"(max-width: 525px) 100vw, 525px\" \/><\/p>\n<p>Ok.<\/p>\n<p>Si vos serveurs utilisent Nginx, il y a quelques petites astuces que vous pouvez facilement mettre en place pour booster leurs performances.<\/p>\n<p>Et justement, en voici 3.<\/p>\n<h3>1 \u2013 Autorisez la compression Gzip<\/h3>\n<p>Pour comprendre \u00e0 quel point la compression Gzip peut r\u00e9duire la consommation de votre bande passante, revenons aux codes informatiques.<\/p>\n<p>En effet, chaque page web g\u00e9n\u00e9r\u00e9e par vos serveurs est constitu\u00e9e d\u2019au moins 3 fichiers textes\u00a0:<\/p>\n<ul>\n<li aria-level=\"1\">un fichier HTML (.html) d\u00e9crivant le contenu de la page<\/li>\n<li aria-level=\"1\">un fichier CSS (.css) qui se charge de d\u00e9crire la mise en page de\u2026 la page web<\/li>\n<li aria-level=\"1\">enfin, un fichier JavaScript (.js) qui va rajouter des animations et rendre la page un peu plus interactive<\/li>\n<\/ul>\n<p>Voici un exemple de page HTML\u00a0:<\/p>\n<pre><b>&lt;!DOCTYPE html&gt;<\/b>\r\n\r\n<b>&lt;html&gt;<\/b>\r\n\r\n<b>&lt;head&gt;<\/b>\r\n\r\n<b>\u00a0\u00a0\u00a0\u00a0&lt;title&gt;Exemple de code HTML&lt;\/title&gt;<\/b>\r\n\r\n<b>&lt;\/head&gt;<\/b>\r\n\r\n<b>&lt;body&gt;<\/b>\r\n\r\n<b>\u00a0\u00a0\u00a0\u00a0&lt;h1&gt;Bonjour, monde !&lt;\/h1&gt;<\/b>\r\n\r\n<b>&lt;\/body&gt;<\/b>\r\n\r\n<b>&lt;\/html&gt;<\/b><\/pre>\n<p>Il est parfaitement indent\u00e9. Lisible. Espac\u00e9. Et les diff\u00e9rents \u00e9l\u00e9ments sont bien indent\u00e9s.<\/p>\n<p>Tout ceci n\u2019a pour seul but que de rendre le code compr\u00e9hensible par les d\u00e9veloppeurs. Mais le navigateur lui n\u2019en a strictement pas besoin.<\/p>\n<p>En r\u00e9alit\u00e9, il le comprendrait tout autant s\u2019il n\u2019y avait pas d\u2019espace et si tout le code \u00e9tait plac\u00e9 sur une seule ligne.<\/p>\n<p>On parle alors de minification.<\/p>\n<p>L\u2019int\u00e9r\u00eat de cette man\u0153uvre\u00a0: r\u00e9duire le poids des fichiers textes.<\/p>\n<p>Nginx va plus loin avec la compression Gzip. Ici, une fen\u00eatre de 32\u00a0000 caract\u00e8res est scann\u00e9e par l\u2019algorithme \u00ab\u00a0Deflate\u00a0\u00bb de Gzip et rep\u00e8re tous les caract\u00e8res redondants dans le fichier.<\/p>\n<figure id=\"attachment_813\" aria-describedby=\"caption-attachment-813\" style=\"width: 1024px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-813\" src=\"https:\/\/poyesis.fr\/blogs\/wp-content\/uploads\/2024\/01\/Fonctionnement-de-lalgorithme-Deflate.png\" alt=\"Fonctionnement de l'algorithme Deflate\" width=\"1024\" height=\"1024\" srcset=\"https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Fonctionnement-de-lalgorithme-Deflate.png 1024w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Fonctionnement-de-lalgorithme-Deflate-300x300.png 300w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Fonctionnement-de-lalgorithme-Deflate-150x150.png 150w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Fonctionnement-de-lalgorithme-Deflate-768x768.png 768w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Fonctionnement-de-lalgorithme-Deflate-75x75.png 75w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Fonctionnement-de-lalgorithme-Deflate-350x350.png 350w, https:\/\/poyesis.fr\/wp-content\/uploads\/2024\/01\/Fonctionnement-de-lalgorithme-Deflate-750x750.png 750w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption id=\"caption-attachment-813\" class=\"wp-caption-text\">Fonctionnement de l&rsquo;algorithme Deflate<\/figcaption><\/figure>\n<p>Ensuite, il parcourt tout le fichier et remplace lesdits caract\u00e8res par une r\u00e9f\u00e9rence vers le premier caract\u00e8re rencontr\u00e9.<\/p>\n<p>Oui, c\u2019est un peu technique, mais le r\u00e9sultat en vaut largement la peine\u00a0: vous pouvez faire baisser le poids de vos fichiers de 70 %.<\/p>\n<p>Et \u00e7a marche aussi sur des donn\u00e9es non-textuelles.<\/p>\n<p>D\u2019ailleurs, les outils de tests de vitesses priorisent les sites ayant activ\u00e9 la compression Gzip. Google les positionne m\u00eame plus haut dans ses classements SEO.<\/p>\n<p>Pour activer la compression Gzip, connectez-vous \u00e0 votre logiciel serveur ftp avec les droits administrateurs.<\/p>\n<p>Allez dans le sous-r\u00e9pertoire \/etc\/nginx\/nginx.conf en tapant la commande cd\/etc\/nginx.<\/p>\n<p>Si vous n\u2019avez pas la configuration par d\u00e9faut, tapez sudo find \/ -name nginx.conf dans le terminal.<\/p>\n<p>Une fois \u00e0 l\u2019int\u00e9rieur du fichier de configuration nginx.conf, entrez les commandes suivantes\u00a0:<\/p>\n<pre>gzip on;\u00a0\r\n\r\ngzip_vary on;\u00a0\r\n\r\ngzip_min_length 1024;\u00a0\r\n\r\ngzip_proxied expired no-cache no-store private auth;\u00a0\r\n\r\ngzip_types text\/plain text\/css text\/xml text\/javascript application\/x-javascript application\/xml;\u00a0\r\n\r\ngzip_disable \"MSIE [1-6]\\.\";<\/pre>\n<p>Maintenant, place \u00e0 l\u2019astuce n\u00b02.<\/p>\n<h3>2 \u2013 Autorisez le support http\/2<\/h3>\n<p>Le protocole HTTP \u2013 ou HyperText Transfer Protocol \u2013 est le protocole client-serveur qui vous permet d\u2019afficher vos pages web.<\/p>\n<p>\u00c0 noter que d\u00e9sormais, c\u2019est sa variante s\u00e9curis\u00e9e, HTTPS qui est recommand\u00e9e. Si vous ne la mettez pas en place, les moteurs de recherche vont afficher une page d\u2019avertissement mena\u00e7ante \u00e0 tous vos visiteurs.<\/p>\n<p>Autant dire que votre trafic et vos conversions vont en p\u00e2tir.<\/p>\n<p>Depuis peu, la version HTTP\/2 est disponible. Plus s\u00e9curis\u00e9e et plus performante, elle vous permet d\u2019obtenir de meilleures performances en quelques lignes.<\/p>\n<p>Pour l\u2019activer, voici ce que vous devez faire\u00a0:<\/p>\n<ul>\n<li aria-level=\"1\">v\u00e9rifiez que la version Nginx install\u00e9e sur votre syst\u00e8me d\u2019exploitation est compatible\u00a0;<\/li>\n<li aria-level=\"1\">activez l\u2019encodage SSL\/TLS sur votre site web\u00a0;<\/li>\n<li aria-level=\"1\">red\u00e9marrez Nginx\u00a0;<\/li>\n<\/ul>\n<p>Voyons \u00e7a plus en d\u00e9tail.<\/p>\n<h4><i>1 \u2013 V\u00e9rifiez votre version de Nginx<\/i><\/h4>\n<p>Si votre version de Nginx est inf\u00e9rieure \u00e0 la version 1.9.5, vous devrez d\u2019abord faire une mise \u00e0 jour de celle-ci.<\/p>\n<p>Pour conna\u00eetre la version Nginx de votre syst\u00e8me, tapez la commande suivante\u00a0:<\/p>\n<pre>Nginx -v<\/pre>\n<p>Vous \u00eates \u00e0 la version 1.9.5\u00a0ou plus ? F\u00e9licitations, vous pouvez activer HTTP\/2.<\/p>\n<h4><i>2 \u2013 Autorisez l\u2019encodage SSL\/TLS\u00a0<\/i><\/h4>\n<p>Contrairement \u00e0 HTTP\/1 qui ne n\u00e9cessitait pas de chiffrement SSL\/TLS, HTTP\/2 l\u2019exige. Son objectif \u00e9tant de s\u00e9curiser au maximum les transactions entre vos serveurs web et les navigateurs de vos lecteurs.<\/p>\n<p>Et pour l\u2019activer, vous aurez besoin d\u2019un certificat SSL. Pas de panique, vous pouvez en obtenir un gratuitement via <a href=\"https:\/\/domains.google.com\" target=\"_blank\" rel=\"noopener\">Google Domains<\/a>.<\/p>\n<p>Une fois que vous en avez un, saisissez juste ces lignes de codes dans votre fichier de configuration Nginx\u00a0:<\/p>\n<pre>server {\r\n\r\n\u00a0\u00a0\u00a0listen 443 ssl http2;\r\n\r\n\u00a0\u00a0\u00a0server_name \u201cvotre nom de domaine\u201d\u202f;\r\n\r\n\u00a0\u00a0\u00a0ssl_certificate \/path\/to\/ssl\/certificate;\r\n\r\n\u00a0\u00a0\u00a0ssl_certificate_key \/path\/to\/ssl\/private\/key;\r\n\r\n\u00a0\u00a0\u00a0...\r\n\r\n}<\/pre>\n<p>Quelques explications\u00a0:<\/p>\n<ul>\n<li aria-level=\"1\">ssl_certificate fait r\u00e9f\u00e9rence au chemin vers votre certificat SSL\/TLS\u00a0;<\/li>\n<li aria-level=\"1\">ssl_certificate_key fait de m\u00eame, mais pour votre cl\u00e9 priv\u00e9e.<\/li>\n<\/ul>\n<p>Enfin, il est l\u2019heure de v\u00e9rifier si \u00e7a a fonctionn\u00e9.<\/p>\n<h4><i>3 \u2013 Testez votre nouvelle configuration et red\u00e9marrer Nginx<\/i><\/h4>\n<p>Pour tester votre configuration et \u00eatre s\u00fbr que tout fonctionne \u00e0 merveille, ex\u00e9cuter la commande suivante\u00a0:<\/p>\n<pre>Nginx -t<\/pre>\n<p>Si tout est bien param\u00e9tr\u00e9, vous verrez un message vous affichant que tout va bien.<\/p>\n<p>Ensuite, red\u00e9marrez Nginx pour rendre vos changements d\u00e9finitifs gr\u00e2ce \u00e0 la commande\u00a0:<\/p>\n<pre>Sudo service nginx restart.<\/pre>\n<h3>3 \u2013 D\u00e9sactivez les protocoles SSL\/TLS d\u00e9pr\u00e9ci\u00e9s<\/h3>\n<p>Toutes les versions de chiffrement TLS ne se valent pas.<\/p>\n<p>Ainsi, TLS 1.0 et 1.1 sont des versions obsol\u00e8tes et vuln\u00e9rables aux attaques de types BEAST, POODLE et CRIME SSL.<\/p>\n<p>Raison pour laquelle la plupart des navigateurs ne les prennent plus en charge.<\/p>\n<p>Heureusement, c\u2019est une modification assez facile \u00e0 faire.<\/p>\n<p>Ouvrez une fois de plus votre fichier de configuration Nginx et saisissez la commande suivante\u00a0:<\/p>\n<pre>ssl_protocols TLSv1.2 TLSv1.3;<\/pre>\n<h2>Notre mot de la fin<\/h2>\n<p>\u00c7a y est\u00a0!<\/p>\n<p>Vous savez tout ce qu\u2019il y a \u00e0 savoir sur Nginx.<\/p>\n<p>Maintenant, vous vous demandez s\u00fbrement si vous devez utiliser Nginx ou pas. Est-ce que ce serveur est adapt\u00e9 \u00e0 votre projet num\u00e9rique ?<\/p>\n<p>\u2026<\/p>\n<p>Heureusement, on peut vous aider \u00e0 r\u00e9pondre \u00e0 cette question.<\/p>\n<p><a href=\"https:\/\/poyesis.fr\/contactez-nous\/\">Laissez un message \u00e0 notre chef de projet informatique<\/a> et notre agence de d\u00e9veloppement web vous aidera \u00e0 choisir la solution la plus adapt\u00e9e.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Si je vous dis IBM, Netflix, Dropbox ou encore X, \u00e0 quoi est-ce que vous pensez ? Aux gigantesques quantit\u00e9s de data que ces g\u00e9ants amassent ? Peut-\u00eatre. Aux myriades de plateformes qu\u2019ils utilisent pour les collecter ? Peut-\u00eatre. Tous ces g\u00e9ants ont un point en commun : ils utilisent tous le m\u00eame serveur web, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":811,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jnews-multi-image_gallery":[],"jnews_single_post":{"format":"standard","override":[{"template":"7","single_blog_custom":"553","parallax":"1","fullscreen":"1","layout":"no-sidebar-narrow","sidebar":"default-sidebar","second_sidebar":"default-sidebar","sticky_sidebar":"1","share_position":"floatbottom","share_float_style":"share-normal","show_share_counter":"1","show_view_counter":"1","show_featured":"1","show_post_meta":"1","show_post_author":"1","show_post_author_image":"1","show_post_date":"1","post_date_format":"default","post_date_format_custom":"Y\/m\/d","show_post_category":"1","post_reading_time_wpm":"300","post_calculate_word_method":"str_word_count","show_zoom_button":"0","zoom_button_out_step":"2","zoom_button_in_step":"3","number_popup_post":"1","show_post_related":"1"}],"image_override":[{"single_post_thumbnail_size":"crop-500","single_post_gallery_size":"crop-500"}],"trending_post_position":"meta","trending_post_label":"Trending","sponsored_post_label":"Sponsored by","disable_ad":"0","subtitle":""},"jnews_primary_category":[],"jnews_override_bookmark_settings":{"override_bookmark_button":"0","override_show_bookmark_button":"0"},"jnews_override_counter":{"view_counter_number":"0","share_counter_number":"0","like_counter_number":"0","dislike_counter_number":"0"},"footnotes":""},"categories":[36,173],"tags":[190,81,191,192,193],"class_list":["post-810","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech","category-webdesign","tag-apache","tag-developpement-web","tag-nginx","tag-serveur","tag-web"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/posts\/810","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/comments?post=810"}],"version-history":[{"count":1,"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/posts\/810\/revisions"}],"predecessor-version":[{"id":1190,"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/posts\/810\/revisions\/1190"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/media\/811"}],"wp:attachment":[{"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/media?parent=810"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/categories?post=810"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/tags?post=810"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}