16 août 2022

Les problĂšmes de NGINX FastCGI Cache dans la version gratuite.

Il y a quelques détails qu'il est bon de savoir étant donné l'utilisation généralisée de FastCGI Cache qui pourrait compromettre la santé de votre site.

Cache NGINX FastCGI

Nous savons tous que les performances des applications et des sites Web sont essentielles Ă  leur succĂšs. Cependant, le processus d'amĂ©lioration des performances des applications ou des sites Web n'est pas toujours clair. La qualitĂ© du code et l'infrastructure sont Ă©videmment critiques, mais dans de nombreux cas, vous pouvez apporter des amĂ©liorations significatives Ă  l'expĂ©rience de l'utilisateur final de votre application en vous concentrant sur certaines techniques de livraison d'application de base. Un tel exemple est la mise en Ɠuvre et l'optimisation de la mise en cache dans la pile d'applications. Cet article de blog couvre les techniques qui peuvent aider les utilisateurs novices et avancĂ©s Ă  obtenir de meilleures performances en utilisant les fonctionnalitĂ©s de mise en cache de contenu incluses dans NGINX et NGINX Plus.

Panoramica

Un cache de contenu se situe entre un client et un "serveur d'origine" et enregistre des copies de tout le contenu qu'il voit. Si un client demande du contenu mis en cache, il renvoie le contenu directement sans contacter le serveur d'origine. Cela améliore les performances car le cache de contenu est plus proche du client et utilise les serveurs d'applications plus efficacement car ils n'ont pas à refaire le travail de génération de page à partir de zéro à chaque fois.

Il existe potentiellement plusieurs caches entre le navigateur Web et le serveur d'applications : le cache du navigateur client, les caches intermĂ©diaires, les rĂ©seaux de diffusion de contenu (CDN) et l'Ă©quilibreur de charge ou le proxy inverse qui se trouve devant les serveurs d'applications. La mise en cache, mĂȘme au niveau du proxy inverse/de l'Ă©quilibreur de charge, peut considĂ©rablement amĂ©liorer les performances.

Cache NGINX

Par exemple, la semaine derniĂšre, j'ai entrepris d'optimiser les performances d'un site Web qui se chargeait lentement. L'une des premiĂšres choses que j'ai remarquĂ©es, c'est qu'il fallait plus d'une seconde pour gĂ©nĂ©rer la page d'accueil principale. AprĂšs quelques dĂ©bogages, j'ai constatĂ© que, comme la page Ă©tait marquĂ©e comme ne pouvant pas ĂȘtre mise en cache, elle Ă©tait gĂ©nĂ©rĂ©e dynamiquement en rĂ©ponse Ă  chaque demande. La page elle-mĂȘme ne changeait pas trĂšs souvent et n'Ă©tait pas personnalisĂ©e, donc ce n'Ă©tait pas nĂ©cessaire. À titre expĂ©rimental, j'ai marquĂ© la page d'accueil pour qu'elle soit mise en cache pendant 1 secondes par l'Ă©quilibreur de charge et le fait Ă  lui seul a entraĂźnĂ© une amĂ©lioration notable. Le temps pour le premier octet est tombĂ© Ă  quelques millisecondes et la page s'est chargĂ©e visiblement plus rapidement.

Nous avons beaucoup parlé de NGINX Webserver et comment nous le préférons pour des raisons de performances au plus célÚbre Apache.

Cependant, nous avons peu parlé de FastCGI Cache, utilisant Varnish Cache dans l'entreprise pour tous les clients hautes performances.

Cependant, nous assistons à une évolution de nombreux hébergeurs qui proposent FastCGI Cache comme solution Full Page Cache pour le serveur web NGINX.

Nous ne serons pas là pour vous expliquer ce qu'est un FPC (Full Page Cache ndlr), l'ayant déjà fait à plusieurs reprises sur notre blog, mais nous souhaitons entrer dans le vif du sujet en vous parlant de FastCGI Cache qui à premiÚre vue peut ressembler à une solution trÚs cache, plus facile que les outils spécifiques à l'entreprise comme Varnish Cache.

Qu'est-ce que le cache Nginx FastCGI ?

Avant de parler de Nginx FastCGI Cache, parlons du fonctionnement de votre site Web.

  1. Lorsqu'un utilisateur visite votre page WordPress, le navigateur Web envoie une requĂȘte HTTP / HTTPS Ă  Nginx.
  2. Nginx transmet la requĂȘte Ă  PHP-FPM et Nginx capture tous les codes PHP lorsqu'il tente de rĂ©cupĂ©rer la page.
  3. PHP-FPM traite la page et interroge la base de données MariaDB/MySQL pour récupérer la page.
  4. PHP-FPM envoie la page HTML "statique" générée à Nginx.
  5. Nginx envoie la page HTML générée au navigateur Web de l'utilisateur.

NGINX inclut un module FastCGI qui contient des directives pour la mise en cache du contenu dynamique servi par le backend PHP. Le paramĂštre Ă©limine le besoin de solutions de mise en cache de page supplĂ©mentaires comme les proxys inverses (pensez Ă  Varnish) ou les plugins spĂ©cifiques Ă  l'application. Le contenu peut Ă©galement ĂȘtre exclu de la mise en cache en fonction de la mĂ©thode de requĂȘte, de l'URL, des cookies ou de toute autre variable de serveur.

Lors de l'utilisation Nginx FastCGI , ce module Nginx intĂ©grĂ© se situera entre Nginx et PHP-FPM et est capable de gĂ©nĂ©rer une page HTML en cache Ă  partir de PHP-FPM.

Lorsqu'un autre utilisateur visite la mĂȘme page WordPress, votre site Web n'effectuera plus les mĂȘmes requĂȘtes PHP et de base de donnĂ©es car la page est dĂ©jĂ  mise en cache et servie par FastCGI.

En conséquence, le temps de réponse de votre serveur sera beaucoup plus rapide aprÚs le chargement initial.

Votre charge PHP-FPM et MariaDB/MySQL sera réduite.

L'utilisation des ressources CPU de votre serveur sera inférieure.

Et enfin, votre serveur peut gĂ©rer plus de trafic avec les mĂȘmes spĂ©cifications de serveur lors de l'utilisation de Nginx FastCGI Cache, vous permettant finalement de maintenir un serveur plus abordable sans avoir Ă  Ă©voluer davantage.

Le principal problĂšme de NGINX FastCGI Cache dans la version gratuite.

Il faut dire et rappeler que NGINX a deux modÚles de distribution, la version Free que tout le monde connaßt et que nous utilisons également et la version Plus appelée NGINX Plus ou NGINX+ qui est la version commerciale payante.

La différence principale et la plus importante entre les deux versions pour ce qui concerne le cache FastCGI est que la fonctionnalité de PURGE ALL dans la version gratuite est manquante par défaut.

En effet, il peut arriver que vous ayez besoin de vider tout le cache dans certaines configurations spécifiques, imaginons un blog qui a les liens des 5 derniÚres news en pied de page et lors de la rédaction d'une nouvelle news vous devez vider tout le cache de l'ensemble du site.

Alors qu'avec Varnish il suffit d'envoyer un BAN / ou un PURGE ALL pour nettoyer tout le cache du site avec la mĂȘme rapiditĂ© qu'en effectuant une opĂ©ration de suppression sur le Filesystem (peut-ĂȘtre moins d'une seconde), avec NGINX FastCGI Cache dans le Free version, vous devrez rappeler une par une au niveau applicatif toutes les URL de votre site, en prenant au minimum 1h sur un site de 5000 pages.

Évidemment, pour rĂ©soudre ce problĂšme, des modules tiers pour NGINX ont Ă©tĂ© crĂ©Ă©s qui vous permettent d'introduire la fonctionnalitĂ© de PURGE ALL comme, par exemple, ngx_cache_purge que vous pouvez trouver sur ce lien : https://github.com/torden/ngx_cache_purge

Bref, si vous n'avez pas les Ă©paules larges pour installer un SystĂšme de mise en cache d'entreprise tel que Varnish, vous pouvez simplement opter pour la version gratuite en ajoutant ce module.

 

 

 

Vous avez des doutes ? Vous ne savez pas par oĂč commencer ? Contactez-nous


Nous avons toutes les réponses à vos questions pour vous aider à faire le bon choix.

Discute avec nous

Discutez directement avec notre support avant-vente.

0256569681

Contactez-nous par téléphone pendant les heures de bureau 9h30 - 19h30

Contactez-nous en ligne

Ouvrez une demande directement dans l'espace contact.

INFORMATIONS

ManagedServer.it est le premier fournisseur italien de solutions d'hébergement hautes performances. Notre modÚle d'abonnement est abordable et prévisible, afin que les clients puissent accéder à nos technologies d'hébergement fiables, à nos serveurs dédiés et au cloud. ManagedServer.it offre également d'excellents services d'assistance et de conseil sur l'hébergement des principaux CMS Open Source tels que WordPress, WooCommerce, Drupal, Prestashop, Magento.

JUSTE UN MOMENT !

Souhaitez-vous voir comment votre WooCommerce fonctionne sur nos systĂšmes sans avoir Ă  migrer quoi que ce soit ? 

Entrez l'adresse de votre site WooCommerce et vous obtiendrez une démonstration navigable, sans avoir à faire absolument quoi que ce soit et entiÚrement gratuite.

Non merci, mes clients préfÚrent le site lent.
Retour en haut de page