L’amélioration des performances des applications Web est plus cruciale que jamais. La part de l’activité économique en ligne est en augmentation ; plus de 5 % de l’économie du monde développé est désormais sur Internet (voir Ressources pour les statistiques Internet ci-dessous). Et dans notre monde moderne, toujours connecté et en constante évolution, les attentes des utilisateurs sont plus élevées que jamais. Si votre site ne répond pas instantanément, ou si votre application ne fonctionne pas sans délai, les utilisateurs se tournent rapidement vers vos concurrents.
Par exemple, une étude réalisée par Amazon il y a près de 10 ans a prouvé que, même à cette époque, une diminution de 100 millisecondes du temps de chargement d’une page se traduisait par une augmentation de 1 % de ses revenus. Une autre étude récente a souligné le fait que plus de la moitié des propriétaires de sites interrogés ont déclaré avoir perdu des revenus ou des clients en raison de mauvaises performances des applications.
À quelle vitesse un site Web doit-il être ? Pour chaque seconde nécessaire au chargement d’une page, environ 4 % des utilisateurs l’abandonnent. Les meilleurs sites de commerce électronique offrent un délai de première interaction allant d'une à trois secondes, ce qui offre le taux de conversion le plus élevé. Il est clair que les enjeux en matière de performances des applications Web sont élevés et susceptibles de croître.
Vouloir améliorer les performances est facile, mais voir des résultats concrets est difficile. Pour vous aider dans votre parcours, cet article de blog vous propose dix conseils pour vous aider à augmenter les performances de votre site Web jusqu'à 10 fois. Il s’agit du premier d’une série qui détaille comment vous pouvez augmenter les performances de votre application à l’aide de techniques d’optimisation éprouvées et avec un peu d’aide de NGINX. Cette série décrit également les améliorations potentielles en matière de sécurité que vous pouvez obtenir en cours de route.
Si votre application Web s'exécute sur une seule machine, la solution aux problèmes de performances peut sembler évidente : il suffit d'acquérir une machine plus rapide, avec plus de processeur, plus de RAM, une matrice de disques rapide, etc. La nouvelle machine peut alors exécuter votre serveur WordPress, votre application Node.js, votre application Java, etc., plus rapidement qu'auparavant. (Si votre application accède à un serveur de base de données, la solution peut encore sembler simple : obtenir deux machines plus rapides et une connexion plus rapide entre elles.)
Le problème est que la vitesse de la machine n’est peut-être pas le problème. Les applications Web s'exécutent souvent lentement car l'ordinateur bascule entre différents types de tâches : interaction avec les utilisateurs sur des milliers de connexions, accès aux fichiers à partir du disque et exécution du code d'application, entre autres. Le serveur d'applications peut être en proie à des problèmes : il manque de mémoire, échange des morceaux de mémoire sur le disque et fait attendre de nombreuses requêtes sur une seule tâche, comme les E/S sur disque.
Au lieu de mettre à niveau votre matériel, vous pouvez adopter une approche entièrement différente : ajouter un serveur proxy inverse pour décharger certaines de ces tâches. Un serveur proxy inverse se trouve devant la machine exécutant l'application et gère le trafic Internet. Seul le serveur proxy inverse est connecté directement à Internet ; la communication avec les serveurs d'applications s'effectue via un réseau interne rapide.
L'utilisation d'un serveur proxy inverse libère le serveur d'applications de l'obligation d'attendre que les utilisateurs interagissent avec l'application Web et lui permet de se concentrer sur la création de pages que le serveur proxy inverse envoie sur Internet. Le serveur d’application, qui n’a plus besoin d’attendre les réponses des clients, peut fonctionner à des vitesses proches de celles atteintes dans les tests de performances optimisés.
L'ajout d'un serveur proxy inverse ajoute également de la flexibilité à la configuration de votre serveur Web. Par exemple, si un serveur d'un type donné est surchargé, un autre serveur du même type peut facilement être ajouté ; si un serveur est en panne, il peut facilement être remplacé.
En raison de la flexibilité qu’il offre, un serveur proxy inverse est également une condition préalable à de nombreuses autres fonctionnalités d’amélioration des performances, telles que :
Le logiciel NGINX est spécifiquement conçu pour être utilisé comme serveur proxy inverse, avec les fonctionnalités supplémentaires décrites ci-dessus. NGINX utilise une approche de traitement pilotée par événements qui est plus efficace que les serveurs traditionnels. NGINX Plus ajoute des fonctionnalités de proxy inverse plus avancées, telles que les contrôles de santé des applications, le routage des requêtes spécialisées, la mise en cache avancée et le support.
L'ajout d'un équilibreur de charge est un changement relativement simple qui peut créer une amélioration spectaculaire des performances et de la sécurité de votre site. Au lieu de rendre un serveur Web principal plus grand et plus puissant, vous utilisez un équilibreur de charge pour répartir le trafic sur plusieurs serveurs. Même si une application est mal écrite ou présente des problèmes de mise à l'échelle, un équilibreur de charge peut améliorer l'expérience utilisateur sans aucune autre modification.
Un équilibreur de charge est avant tout un serveur proxy inverse (voir Astuce 1 ) : il reçoit le trafic Internet et transmet les requêtes à un autre serveur. L’astuce est que l’équilibreur de charge prend en charge deux ou plusieurs serveurs d’applications, en utilisant un choix d’algorithmes pour répartir les requêtes entre les serveurs. L’approche d’équilibrage de charge la plus simple est le round robin, chaque nouvelle requête étant envoyée au serveur suivant de la liste. D’autres méthodes incluent l’envoi de requêtes au serveur avec le moins de connexions actives. NGINX Plus dispose de capacités permettant de poursuivre une session utilisateur donnée sur le même serveur, ce que l'on appelle la persistance de session.
Les équilibreurs de charge peuvent entraîner de fortes améliorations des performances, car ils empêchent un serveur d'être surchargé pendant que d'autres serveurs attendent le trafic. Ils facilitent également l’extension de la capacité de votre serveur Web, car vous pouvez ajouter des serveurs relativement peu coûteux et être sûr qu’ils seront pleinement utilisés.
Les protocoles pouvant être équilibrés en charge incluent HTTP, HTTPS, SPDY, HTTP/2, WebSocket, FastCGI , SCGI, uwsgi, memcached et plusieurs autres types d'applications, notamment les applications basées sur TCP et d'autres protocoles de couche 4. Analysez vos applications Web pour déterminer celles que vous utilisez et où les performances sont inférieures.
Le même serveur ou les mêmes serveurs utilisés pour l'équilibrage de charge peuvent également gérer plusieurs autres tâches, telles que la terminaison SSL, la prise en charge de l'utilisation de HTTP/1. x et HTTP/2 par les clients et la mise en cache des fichiers statiques.
NGINX est souvent utilisé pour l'équilibrage de charge. Pour en savoir plus, téléchargez notre livre électronique, Cinq raisons de choisir un équilibreur de charge logiciel . Vous pouvez obtenir des instructions de configuration de base dans Équilibrage de charge avec NGINX et NGINX Plus, partie 1 , ainsi qu'une documentation complète dans le Guide d'administration NGINX Plus . NGINX Plus est notre produit commercial et prend en charge des fonctionnalités d'équilibrage de charge plus spécialisées telles que le routage de charge basé sur le temps de réponse du serveur et la possibilité d'équilibrer la charge sur le protocole NTLM de Microsoft.
La mise en cache améliore les performances des applications Web en fournissant du contenu aux clients plus rapidement. La mise en cache peut impliquer plusieurs stratégies : prétraiter le contenu pour une livraison rapide en cas de besoin, stocker le contenu sur des appareils plus rapides, stocker le contenu plus près du client, ou une combinaison.
Il existe deux types différents de mise en cache à prendre en compte :
Si une page obtient 10 vues par seconde, par exemple, et que vous la mettez en cache pendant 1 seconde, 90 % des requêtes pour la page proviendront du cache. Si vous mettez en cache séparément le contenu statique, même les versions fraîchement générées de la page peuvent être constituées en grande partie de contenu mis en cache.
Il existe trois techniques principales pour mettre en cache le contenu généré par les applications Web :
La mise en cache des applications Web peut être implémentée de l'intérieur (du serveur d'applications Web) vers l'extérieur. Premièrement, la mise en cache est utilisée pour le contenu dynamique, afin de réduire la charge sur les serveurs d’applications. Ensuite, la mise en cache est utilisée pour le contenu statique (y compris les copies temporaires de ce qui serait autrement du contenu dynamique), déchargeant ainsi davantage les serveurs d’applications. La mise en cache est ensuite déplacée des serveurs d’applications vers des machines plus rapides et/ou plus proches de l’utilisateur, ce qui décharge les serveurs d’applications et réduit les temps de récupération et de transmission.
Une mise en cache améliorée peut considérablement accélérer les applications. Pour de nombreuses pages Web, les données statiques, telles que les fichiers image volumineux, représentent plus de la moitié du contenu. La récupération et la transmission de ces données peuvent prendre plusieurs secondes sans mise en cache, mais seulement quelques fractions de seconde si les données sont mises en cache localement.
À titre d’exemple de la manière dont la mise en cache est utilisée dans la pratique, NGINX et NGINX Plus utilisent deux directives pour configurer la mise en cache : proxy_cache_path
et proxy_cache
. Vous spécifiez l'emplacement et la taille du cache, la durée maximale pendant laquelle les fichiers sont conservés dans le cache et d'autres paramètres. En utilisant une troisième directive (et assez populaire), proxy_cache_use_stale
, vous pouvez même diriger le cache pour fournir du contenu obsolète lorsque le serveur qui fournit du contenu nouveau est occupé ou en panne, donnant ainsi au client quelque chose plutôt que rien. Du point de vue de l'utilisateur, cela peut considérablement améliorer la disponibilité de votre site ou de votre application.
NGINX Plus dispose de fonctionnalités de mise en cache avancées , notamment la prise en charge de la purge du cache et la visualisation de l'état du cache sur un tableau de bord pour la surveillance des activités en direct.
Pour plus d'informations sur la mise en cache avec NGINX, consultez la documentation de référence et le Guide d'administration NGINX Plus .
Note : La mise en cache traverse les lignes organisationnelles entre les personnes qui développent des applications, celles qui prennent des décisions d’investissement en capital et celles qui gèrent les réseaux en temps réel. Les stratégies de mise en cache sophistiquées, comme celles évoquées ici, sont un bon exemple de la valeur d'une perspective DevOps , dans laquelle les perspectives du développeur d'applications, de l'architecture et des opérations sont fusionnées pour aider à atteindre les objectifs de fonctionnalité du site, de temps de réponse, de sécurité et de résultats commerciaux, tels que les transactions ou les ventes terminées.
La compression est un énorme accélérateur de performances potentiel. Il existe des normes de compression soigneusement conçues et très efficaces pour les photos (JPEG et PNG), les vidéos (MPEG-4) et la musique (MP3), entre autres. Chacune de ces normes réduit la taille du fichier d’un ordre de grandeur ou plus.
Les données textuelles – y compris le HTML (qui comprend du texte brut et des balises HTML), le CSS et le code tel que JavaScript – sont souvent transmises non compressées. La compression de ces données peut avoir un impact disproportionné sur les performances perçues des applications Web, en particulier pour les clients disposant de connexions mobiles lentes ou limitées.
C’est parce que les données textuelles sont souvent suffisantes pour qu’un utilisateur puisse interagir avec une page, là où les données multimédias peuvent être plus utiles ou décoratives. La compression de contenu intelligente peut réduire les besoins en bande passante du contenu HTML, Javascript, CSS et autres contenus textuels, généralement de 30 % ou plus, avec une réduction correspondante du temps de chargement.
Si vous utilisez SSL, la compression réduit la quantité de données à encoder via SSL, ce qui compense une partie du temps CPU nécessaire à la compression des données.
Les méthodes de compression des données textuelles varient. Par exemple, consultez l' astuce 6 pour un nouveau schéma de compression de texte dans SPDY et HTTP/2, adapté spécifiquement aux données d'en-tête. Comme autre exemple de compression de texte, vous pouvez activer la compression GZIP dans NGINX. Après avoir précompressé les données texte sur vos services, vous pouvez diffuser directement le fichier .gz compressé à l'aide de la directive gzip_static
.
Le protocole Secure Sockets Layer ( SSL ) et son successeur, le protocole Transport Layer Security (TLS), sont utilisés sur de plus en plus de sites Web. SSL/TLS crypte les données transportées depuis les serveurs d'origine vers les utilisateurs pour aider à améliorer la sécurité du site. Ce qui peut influencer cette tendance est en partie le fait que Google utilise désormais la présence de SSL/TLS comme une influence positive sur le classement des moteurs de recherche.
Malgré une popularité croissante, les pertes de performances liées à SSL/TLS constituent un problème pour de nombreux sites. SSL/TLS ralentit les performances du site Web pour deux raisons :
Pour encourager l’utilisation de SSL/TLS, les auteurs de HTTP/2 et SPDY (décrits dans l’ astuce suivante ) ont conçu ces protocoles de manière à ce que les navigateurs n’aient besoin que d’une seule connexion par session de navigation. Cela réduit considérablement l’une des deux principales sources de surcharge SSL. Toutefois, il est encore possible de faire davantage aujourd’hui pour améliorer les performances des applications diffusées via SSL/TLS.
Le mécanisme d’optimisation SSL/TLS varie selon le serveur Web. À titre d’exemple, NGINX utilise OpenSSL , exécuté sur du matériel standard, pour fournir des performances similaires aux solutions matérielles dédiées. Les performances SSL de NGINX sont bien documentées et minimisent la pénalité de temps et de CPU liée à l’exécution du chiffrement et du déchiffrement SSL/TLS.
En outre, consultez cet article de blog pour plus de détails sur les moyens d’augmenter les performances SSL/TLS. Pour résumer brièvement, les techniques sont :
ssl_session_cache
pour mettre en cache les paramètres utilisés lors de la sécurisation de chaque nouvelle connexion avec SSL/TLS.NGINX et NGINX Plus peuvent être utilisés pour la terminaison SSL/TLS – gérant le cryptage et le décryptage du trafic client, tout en communiquant avec d'autres serveurs en texte clair. Pour configurer NGINX ou NGINX Plus afin de gérer la terminaison SSL/TLS, consultez les instructions relatives aux connexions HTTPS et aux connexions TCP chiffrées .
Pour les sites qui utilisent déjà SSL/TLS, HTTP/2 et SPDY sont très susceptibles d'améliorer les performances, car la connexion unique ne nécessite qu'une seule poignée de main. Pour les sites qui n’utilisent pas encore SSL/TLS, HTTP/2 et SPDY rendent le passage à SSL/TLS (qui ralentit normalement les performances) un échec du point de vue de la réactivité.
Google a introduit SPDY en 2012 comme moyen d'obtenir des performances plus rapides sur HTTP/1. x . HTTP/2 est la norme IETF récemment approuvée basée sur SPDY. SPDY est largement pris en charge, mais sera bientôt obsolète et remplacé par HTTP/2.
La caractéristique clé de SPDY et HTTP/2 est l’utilisation d’une seule connexion plutôt que de plusieurs connexions. La connexion unique est multiplexée, elle peut donc transporter des morceaux de plusieurs requêtes et réponses en même temps.
En tirant le meilleur parti d'une connexion, ces protocoles évitent les frais généraux liés à la configuration et à la gestion de plusieurs connexions, comme l'exige la manière dont les navigateurs implémentent HTTP/1. x . L’utilisation d’une connexion unique est particulièrement utile avec SSL, car elle minimise le temps nécessaire à la négociation SSL/TLS pour établir une connexion sécurisée.
Le protocole SPDY nécessite l'utilisation de SSL/TLS ; HTTP/2 ne l'exige pas officiellement, mais tous les navigateurs qui prennent en charge HTTP/2 ne l'utilisent jusqu'à présent que si SSL/TLS est activé. Autrement dit, un navigateur qui prend en charge HTTP/2 l’utilise uniquement si le site Web utilise SSL et que son serveur accepte le trafic HTTP/2. Sinon, le navigateur communique via HTTP/1. x .
Lorsque vous implémentez SPDY ou HTTP/2, vous n'avez plus besoin des optimisations de performances HTTP classiques telles que le partitionnement de domaine, la fusion de ressources et le spriting d'image. Ces modifications rendent votre code et vos déploiements plus simples et plus faciles à gérer. Pour en savoir plus sur les changements apportés par HTTP/2, lisez notre livre blanc, HTTP/2 pour les développeurs d'applications Web .
À titre d'exemple de prise en charge de ces protocoles, NGINX a pris en charge SPDY dès le début, et la plupart des sites qui utilisent SPDY aujourd'hui fonctionnent sur NGINX. NGINX est également un pionnier de la prise en charge de HTTP/2, avec la prise en charge de HTTP/2 dans NGINX open source et NGINX Plus depuis septembre 2015.
Au fil du temps, chez NGINX, nous prévoyons que la plupart des sites activeront entièrement SSL et passeront à HTTP/2. Cela conduira à une sécurité accrue et, à mesure que de nouvelles optimisations seront trouvées et mises en œuvre, à un code plus simple et plus performant.
Un moyen simple d’améliorer les performances des applications consiste à sélectionner les composants de votre pile logicielle en fonction de leur réputation de stabilité et de performances. De plus, étant donné que les développeurs de composants de haute qualité sont susceptibles de rechercher des améliorations de performances et de corriger les bogues au fil du temps, il est avantageux d’utiliser la dernière version stable du logiciel. Les nouvelles versions reçoivent davantage d’attention de la part des développeurs et de la communauté des utilisateurs. Les versions plus récentes bénéficient également de nouvelles optimisations du compilateur, notamment le réglage pour le nouveau matériel.
Les nouvelles versions stables sont généralement plus compatibles et plus performantes que les anciennes versions. Il est également plus facile de se tenir au courant des optimisations de réglage, des corrections de bogues et des alertes de sécurité lorsque vous restez au courant des mises à jour logicielles.
Rester avec des logiciels plus anciens peut également vous empêcher de profiter de nouvelles fonctionnalités. Par exemple, HTTP/2, décrit ci-dessus, nécessite actuellement OpenSSL 1.0.1. À partir de mi-2016, HTTP/2 nécessitera OpenSSL 1.0.2, publié en janvier 2015.
Les utilisateurs de NGINX peuvent commencer par passer à la dernière version de NGINX ou NGINX Plus ; ils incluent de nouvelles fonctionnalités telles que le sharding de socket et les pools de threads (voir Astuce 9 ), et les deux sont constamment optimisés pour les performances. Ensuite, examinez les logiciels plus en profondeur dans votre pile et passez à la version la plus récente chaque fois que vous le pouvez.
Linux est le système d’exploitation sous-jacent à la plupart des implémentations de serveurs Web actuelles et, en tant que base de votre infrastructure, Linux représente une opportunité significative d’améliorer les performances. Par défaut, de nombreux systèmes Linux sont réglés de manière conservatrice pour utiliser peu de ressources et pour correspondre à une charge de travail de bureau typique. Cela signifie que les cas d’utilisation d’applications Web nécessitent au moins un certain degré de réglage pour des performances maximales.
Les optimisations Linux sont spécifiques au serveur Web. En prenant NGINX comme exemple, voici quelques points saillants des changements que vous pouvez envisager pour accélérer Linux :
net.core.somaxconn
, le nombre maximal de connexions qui peuvent être mises en file d'attente en attendant l'attention de NGINX. Vous verrez des messages d'erreur si la limite de connexion existante est trop faible, et vous pouvez augmenter progressivement ce paramètre jusqu'à ce que les messages d'erreur cessent.sys.fs.file_max
, la limite à l'échelle du système pour les descripteurs de fichiers, et nofile
, la limite du descripteur de fichiers utilisateur, pour prendre en charge la charge accrue.net.ipv4.ip_local_port_range
, pour augmenter le nombre de ports disponibles. Vous pouvez également réduire le délai d'expiration avant qu'un port inactif ne soit réutilisé avec le paramètre net.ipv4.tcp_fin_timeout
, permettant un renouvellement plus rapide.Pour NGINX, consultez le guide de réglage des performances NGINX pour savoir comment optimiser votre système Linux afin qu'il puisse gérer de gros volumes de trafic réseau sans transpirer !
Quel que soit le serveur Web que vous utilisez, vous devez le régler pour les performances des applications Web. Les recommandations suivantes s'appliquent généralement à tout serveur Web, mais des paramètres spécifiques sont fournis pour NGINX. Les principales optimisations incluent :
buffer= size
à la directive access_log
pour écrire les entrées de journal sur le disque lorsque la mémoire tampon est pleine. Si vous ajoutez le paramètre flush= time
, le contenu du tampon sera également écrit sur le disque après la durée spécifiée.proxy_buffer_size
et proxy_buffers
pour la gérer.keepalive_requests
qu'un client peut effectuer sur une connexion donnée à partir de la valeur par défaut de 100, et vous pouvez augmenter le keepalive_timeout
pour permettre à la connexion keepalive de rester ouverte plus longtemps, ce qui entraîne des demandes ultérieures plus rapides.keepalive
, le nombre de connexions keepalive inactives qui restent ouvertes pour chaque processus de travail. Cela permet une réutilisation accrue des connexions, réduisant ainsi le besoin d'ouvrir de nouvelles connexions. Pour plus d'informations, consultez notre article de blog, Connexions HTTP Keepalive et performances Web .limit_conn
et limit_conn_zone
limitent le nombre de connexions à partir d'une source donnée, tandis que limit_rate
limite la bande passante. Ces paramètres peuvent empêcher un utilisateur légitime de « monopoliser » des ressources et également aider à prévenir les attaques. Les directives limit_req
et limit_req_zone
limitent les requêtes des clients. Pour les connexions aux serveurs en amont, utilisez le paramètre max_conns
de la directive serveur
dans un bloc de configuration en amont
. Cela limite les connexions à un serveur en amont, évitant ainsi toute surcharge. La directive de file d'attente
associée crée une file d'attente qui contient un nombre spécifié de requêtes pendant une durée spécifiée une fois que la limite max_conns
est atteinte.worker_processes
sur un par CPU. Le nombre maximal de connexions worker_connections
(512 par défaut) peut être augmenté en toute sécurité sur la plupart des systèmes si nécessaire ; expérimentez pour trouver la valeur qui convient le mieux à votre système.reuseport
dans la directive listen
.read()
et sendfile()
– sont déchargées vers des pools de threads .Conseil . Lorsque vous modifiez les paramètres d’un système d’exploitation ou d’un service de support, modifiez un seul paramètre à la fois, puis testez les performances. Si le changement entraîne des problèmes ou s'il n'accélère pas le fonctionnement de votre site, rétablissez-le.
Pour en savoir plus sur le réglage d'un serveur Web NGINX, consultez notre article de blog, Réglage de NGINX pour les performances .
La clé d’une approche haute performance du développement et de la livraison d’applications consiste à surveiller de près et en temps réel les performances réelles de votre application. Vous devez être en mesure de surveiller l’activité sur des appareils spécifiques et sur votre infrastructure Web.
La surveillance de l’activité du site est principalement passive : elle vous indique ce qui se passe et vous laisse le soin de repérer les problèmes et de les résoudre.
La surveillance peut détecter plusieurs types de problèmes différents. Ils comprennent :
Un outil de surveillance des performances des applications globales comme New Relic ou Dynatrace vous aide à surveiller le temps de chargement des pages à partir d'emplacements distants, tandis que NGINX vous aide à surveiller le côté distribution des applications. Les données de performances des applications vous indiquent quand vos optimisations font une réelle différence pour vos utilisateurs et quand vous devez envisager d'ajouter de la capacité à votre infrastructure pour soutenir le trafic.
Pour aider à identifier et à résoudre rapidement les problèmes, NGINX Plus ajoute des contrôles de santé prenant en compte les applications : des transactions synthétiques qui sont répétées régulièrement et utilisées pour vous alerter des problèmes. NGINX Plus dispose également d' une fonction de drainage de session , qui arrête les nouvelles connexions pendant que les tâches existantes se terminent, et d'une fonction de démarrage lent, permettant à un serveur récupéré de reprendre sa vitesse de croisière au sein d'un groupe à charge équilibrée. Lorsqu'ils sont utilisés efficacement, les contrôles de santé vous permettent d'identifier les problèmes avant qu'ils n'aient un impact significatif sur l'expérience utilisateur, tandis que l'épuisement des sessions et le démarrage lent vous permettent de remplacer les serveurs et de garantir que le processus n'affecte pas négativement les performances ou la disponibilité perçues. L’illustration montre le tableau de bord de surveillance d’activité en direct intégré NGINX Plus pour une infrastructure Web avec serveurs, connexions TCP et mise en cache.
Les améliorations de performances disponibles pour une application Web varient énormément, et les gains réels dépendent de votre budget, du temps que vous pouvez investir et des lacunes de votre implémentation existante. Alors, comment pourriez-vous obtenir une amélioration des performances de 10 fois pour vos propres applications ?
Pour vous aider à comprendre l'impact potentiel de chaque optimisation, voici quelques indications sur l'amélioration qui peut être possible avec chaque conseil détaillé ci-dessus, même si votre kilométrage variera presque certainement :
Nous espérons que vous essayerez ces techniques par vous-même. Nous souhaitons connaître le type d’améliorations des performances des applications que vous êtes en mesure d’obtenir. Partagez vos résultats dans les commentaires ci-dessous ou tweetez votre histoire avec les hashtags #NGINX et #webperf !
Statista.com – Part de l'économie Internet dans le produit intérieur brut des pays du G20 en 2016
Kissmetrics – Comment le temps de chargement affecte vos résultats (infographie)
« Cet article de blog peut faire référence à des produits qui ne sont plus disponibles et/ou qui ne sont plus pris en charge. Pour obtenir les informations les plus récentes sur les produits et solutions F5 NGINX disponibles, explorez notre famille de produits NGINX . NGINX fait désormais partie de F5. Tous les liens NGINX.com précédents redirigeront vers un contenu NGINX similaire sur F5.com."