Par Maxime Pfrimmer, le 16 janvier 2024
TechSi je vous dis IBM, Netflix, Dropbox ou encore X, à quoi est-ce que vous pensez ?
Aux gigantesques quantités de data que ces géants amassent ? Peut-être.
Aux myriades de plateformes qu’ils utilisent pour les collecter ? Peut-être.
Tous ces géants ont un point en commun : ils utilisent tous le même serveur web, Nginx ( à prononcer “Engine X”).
Et ils ne sont pas les seuls. Selon W3techs.com, 34.1 % des sites web s’appuient sur Nginx pour gérer leurs requêtes ou servir d’API.
Alors, naturellement, nous nous sommes demandés qu’est-ce qui se cache derrière ce succès fou ?
D’autant qu’à la base, Nginx n’est qu’un petit moteur développé par un ingénieur russe en solo dans son coin.
À quoi est-ce qu’il sert ? Comment est-ce qu’il fonctionne ? Pourquoi est-ce que les créateurs de sites web le préfèrent à Apache ? Et enfin, est-ce que vous devez vous aussi l’utiliser ?
On vous dévoile tout dans cet article.
Bonne lecture 😊
Tout comme l’intelligence artificielle a chamboulé notre quotidien en 2023, l’arrivée de Nginx sur le marché a été un vrai game-changer.
Pour comprendre pourquoi, remontons l’histoire de Nginx.
Son histoire commence 20 ans après le début d’internet. Plus précisément vers sa démocratisation dans les années 90.
À cette époque, de plus en plus de personnes arpentent les routes du web grâce à leurs navigateurs web.
Sauf qu’il y a eu imprévu : la capacité des serveurs à router les requêtes entrantes ne suivaient pas la cadence.
Dès que 10 000 connexions simultanées arrivaient sur un seul serveur, ça entraînait un bug.
Toutes les compagnies ont donc cherché à améliorer leurs hardwares… sans succès.
Et la raison de leurs échecs à surmonter ce problème a été mise en évidence en 1999 dans l’article « The C10K Problem » de Dan Kegel.
Dans cet article, l’ingénieur démontre que le hardware n’est pas la raison principale qui empêche les sites web de gérer 10 000 visiteurs en même temps.
La cause vient plus tôt du mauvais usage des ressources des serveurs par les systèmes d’exploitation.
3 ans plus tard, en 2002, en plein cœur de la Russie, la société éditrice du moteur de recherche Rambler – un des sites web les plus fréquentés de Russie avec 64.19 M de visiteurs en novembre 2023 – embauche un développeur.
Sa mission est simple : aider le site à gérer l’afflux massif d’internautes russes pour faire face à la popularité croissante du service.
Et Igor n’y va pas par 4 chemins. Après deux ans d’efforts acharnés, il crée un logiciel open-source pour gérer le trafic de Rambler : Nginx.
Son logiciel n’a qu’un objectif : offrir le maximum de performance,de stabilité et optimiser les performances à l’échelle.
Au moment où nous écrivons cet article, nous sommes le 27 décembre 2023.
Et lorsqu’on regarde les statistiques, c’est sans appel : NGINX est LE logiciel de serveur web le plus utilisé.
Source : W3techs.com
Pourcentage d’utilisation des différents serveurs web au monde en juin 2023
Même des logiciels sous licence appartenant aux GAFAM comme Microsoft-IIS n’arrivent pas à le concurrencer.
Maintenant, rentrons plus en détails dans ce qu’est vraiment NGINX.
Nginx est un logiciel type serveur web open-source dont les maîtres mots sont performance, utilisation la plus efficace possible des ressources des serveurs et rapidité.
Nginx est conçu pour utiliser très peu de mémoire et maximiser la simultanéité. Et cette souplesse plaît énormément aux équipes de développement web et mobiles qui l’utilisent aussi comme :
La particularité de Nginx vient de son mode de fonctionnement.
Ainsi, contrairement à la plupart des autres serveurs du marché qui sont multi-processus – un visiteur = un nouveau processus – Nginx est mono-processus.
Tout le trafic est géré dans un seul processus qui utilise une architecture maître-esclave. De plus, l’outil open-source repose aussi sur une approche asynchrone et évènementielle.
Cette conception logicielle atypique lui permet d’exécuter plusieurs requêtes simultanément sans craindre l’interblocage des processus (ou deadlock).
En effet, un deadlock ne se produit que si plusieurs processus concurrents souhaitent accéder à la même ressource non-partageable en même temps. En attendant d’y accéder, chacun conserve un accès exclusif à une ressource convoitée par un autre processus.
Raison pour laquelle Nginx est plébiscité par les développeurs lors de la conception d’une plateforme digitale validant ces conditions :
Autre cas d’usage de Nginx : il peut servir d’API entre vos différents micro-services.
Pour terminer, voici quelques caractéristiques notables de Nginx :
Tout ceci grâce à l’architecture maître-esclave. Et justement, parlons-en de cette architecture.
Comme dit plus haut, Nginx repose sur une architecture maître-esclave asynchrone et sur des modèles événementiels non-bloquants.
Concrètement, voici comment une instance de Nginx fonctionne :
De plus, pour diminuer les temps d’accès aux fichiers, les chargeurs de cache des proxys ajoutent les données dans la mémoire tampon du moteur. Ainsi, même si le navigateur client est lent, son maigre débit ne va pas ralentir le proxy.
Ce fonctionnement présente 2 différences majeures avec le second serveur web le plus utilisé Apache :
S’il vous fallait 5 raisons d’utiliser Nginx, les voici :
Maintenant, voyons pourquoi les hébergeurs web l’adorent.
Vous vous souvenez lorsque nous avons des graphes plus haut ?
Ceux montrant la moyenne des parts de marché de Nginx dans les sites web ?
En réalité, ils cachent une grande disparité.
Jugez de vous-même via ce graphique fourni par w3Techs.com :
Vous avez remarqué la différence entre les deux serveurs ?
…
Réponse : Nginx est de plus en plus utilisé à mesure que le trafic des sites web pris en compte est élevé.
Pour le top 1.000.000 des plateformes les plus visitées, Nginx représente 31.9% des parts de marché, contre 22.8 % pour Apache web server.
Dès qu’on atteint le top 100.000 des plateformes les plus visitées, Nginx croît jusqu’à atteindre 32 % alors qu’Apache recule à 17.6 %.
Et ainsi de suite.
Si les applications web à fort trafic comme Netflix ou le CMS WordPress, les hébergeurs comme OVH et des gestionnaires de CDN, misent sur Nginx, c’est pour 4 raisons :
Enfin, le cœur même de Nginx reste sa capacité à gérer plusieurs connexions entrantes en utilisant le moins de mémoire possible. Et là-dessus, les statistiques issues des essais sur les benchmarks ne mentent pas.
Source : https://blog.coolicehost.com/ten-great-advantages-of-nginx/
Ok.
Si vos serveurs utilisent Nginx, il y a quelques petites astuces que vous pouvez facilement mettre en place pour booster leurs performances.
Et justement, en voici 3.
Pour comprendre à quel point la compression Gzip peut réduire la consommation de votre bande passante, revenons aux codes informatiques.
En effet, chaque page web générée par vos serveurs est constituée d’au moins 3 fichiers textes :
Voici un exemple de page HTML :
<!DOCTYPE html> <html> <head> <title>Exemple de code HTML</title> </head> <body> <h1>Bonjour, monde !</h1> </body> </html>
Il est parfaitement indenté. Lisible. Espacé. Et les différents éléments sont bien indentés.
Tout ceci n’a pour seul but que de rendre le code compréhensible par les développeurs. Mais le navigateur lui n’en a strictement pas besoin.
En réalité, il le comprendrait tout autant s’il n’y avait pas d’espace et si tout le code était placé sur une seule ligne.
On parle alors de minification.
L’intérêt de cette manœuvre : réduire le poids des fichiers textes.
Nginx va plus loin avec la compression Gzip. Ici, une fenêtre de 32 000 caractères est scannée par l’algorithme « Deflate » de Gzip et repère tous les caractères redondants dans le fichier.
Ensuite, il parcourt tout le fichier et remplace lesdits caractères par une référence vers le premier caractère rencontré.
Oui, c’est un peu technique, mais le résultat en vaut largement la peine : vous pouvez faire baisser le poids de vos fichiers de 70 %.
Et ça marche aussi sur des données non-textuelles.
D’ailleurs, les outils de tests de vitesses priorisent les sites ayant activé la compression Gzip. Google les positionne même plus haut dans ses classements SEO.
Pour activer la compression Gzip, connectez-vous à votre logiciel serveur ftp avec les droits administrateurs.
Allez dans le sous-répertoire /etc/nginx/nginx.conf en tapant la commande cd/etc/nginx.
Si vous n’avez pas la configuration par défaut, tapez sudo find / -name nginx.conf dans le terminal.
Une fois à l’intérieur du fichier de configuration nginx.conf, entrez les commandes suivantes :
gzip on; gzip_vary on; gzip_min_length 1024; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml; gzip_disable "MSIE [1-6]\.";
Maintenant, place à l’astuce n°2.
Le protocole HTTP – ou HyperText Transfer Protocol – est le protocole client-serveur qui vous permet d’afficher vos pages web.
À noter que désormais, c’est sa variante sécurisée, HTTPS qui est recommandée. Si vous ne la mettez pas en place, les moteurs de recherche vont afficher une page d’avertissement menaçante à tous vos visiteurs.
Autant dire que votre trafic et vos conversions vont en pâtir.
Depuis peu, la version HTTP/2 est disponible. Plus sécurisée et plus performante, elle vous permet d’obtenir de meilleures performances en quelques lignes.
Pour l’activer, voici ce que vous devez faire :
Voyons ça plus en détail.
Si votre version de Nginx est inférieure à la version 1.9.5, vous devrez d’abord faire une mise à jour de celle-ci.
Pour connaître la version Nginx de votre système, tapez la commande suivante :
Nginx -v
Vous êtes à la version 1.9.5 ou plus ? Félicitations, vous pouvez activer HTTP/2.
Contrairement à HTTP/1 qui ne nécessitait pas de chiffrement SSL/TLS, HTTP/2 l’exige. Son objectif étant de sécuriser au maximum les transactions entre vos serveurs web et les navigateurs de vos lecteurs.
Et pour l’activer, vous aurez besoin d’un certificat SSL. Pas de panique, vous pouvez en obtenir un gratuitement via Google Domains.
Une fois que vous en avez un, saisissez juste ces lignes de codes dans votre fichier de configuration Nginx :
server { listen 443 ssl http2; server_name “votre nom de domaine” ; ssl_certificate /path/to/ssl/certificate; ssl_certificate_key /path/to/ssl/private/key; ... }
Quelques explications :
Enfin, il est l’heure de vérifier si ça a fonctionné.
Pour tester votre configuration et être sûr que tout fonctionne à merveille, exécuter la commande suivante :
Nginx -t
Si tout est bien paramétré, vous verrez un message vous affichant que tout va bien.
Ensuite, redémarrez Nginx pour rendre vos changements définitifs grâce à la commande :
Sudo service nginx restart.
Toutes les versions de chiffrement TLS ne se valent pas.
Ainsi, TLS 1.0 et 1.1 sont des versions obsolètes et vulnérables aux attaques de types BEAST, POODLE et CRIME SSL.
Raison pour laquelle la plupart des navigateurs ne les prennent plus en charge.
Heureusement, c’est une modification assez facile à faire.
Ouvrez une fois de plus votre fichier de configuration Nginx et saisissez la commande suivante :
ssl_protocols TLSv1.2 TLSv1.3;
Ça y est !
Vous savez tout ce qu’il y a à savoir sur Nginx.
Maintenant, vous vous demandez sûrement si vous devez utiliser Nginx ou pas. Est-ce que ce serveur est adapté à votre projet numérique ?
…
Heureusement, on peut vous aider à répondre à cette question.
Laissez un message à notre chef de projet informatique et notre agence de développement web vous aidera à choisir la solution la plus adaptée.
Actualité
Perplexity AI, une licorne qui promet de rendre Google “ringard” (ce sont les mots exacts de son PDG), c’est fait prendre en plein scrapping de données. Et ce n’est pas la première fois. Qu’est-ce que Perplexity AI ? Si vous n’êtes pas un abonné de la planète tech, il y a des chances que …
Continue reading « Perplexity AI pris en flagrant délit de vol de données »
27 juin 2024
Actualité
18 ans. C’est le nombre d’années qui s’est écoulé depuis la release de numpy 1.0. Numpy est un peu le couteau de suisse des mathématiques sous Pythons. Grâce à cette bibliothèque, vous pouvez gérer simplement des matrices, des polynômes et toute une kyrielle de fonctions mathématiques. Tous ceux qui font des maths l’utilisent. Des statisticiens. …
Continue reading « NumPy 2.0 sort enfin après 18 ans, on fait le point »
26 juin 2024
Actualité
Mardi 18 juin 2024. Dans un billet de blog plutôt discret, Google a annoncé le lancement de l’application Gemini (ex Bard) en Inde. Cette version de Gemini est capable de comprendre neuf langues indiennes en plus de l’anglais : l’hindi ; le bengali ; le gujarati ; Le kannada ; Le malayalam ; le marathi …
Continue reading « Google Gemini s’invite en Inde (et s’ouvre enfin à tous) »
25 juin 2024