Caching avec Nginx

 

1.  Informations Générales

 

1.1  Qu'est-ce qu'un Cache ?

Un cache est un espace de stockage temporaire qui rend la récupération des données depuis un stockage plus efficace. Cela permet de répondre directement à diverses demandes sans avoir besoin de calculs. Le résultat du premier calcul de la demande est déjà dans le cache et peut donc être délivré plus rapidement. Il est important de noter qu'il existe différents types de caches. Dans les applications web, ceux-ci incluent principalement le cache serveur (dans ce cas, le cache Nginx), le cache d'application et le cache de navigateur.

Du côté serveur, le contenu dynamique bénéficie particulièrement du caching car il doit généralement être généré avec beaucoup d'efforts et est souvent associé à des requêtes de base de données en arrière-plan.

 

1.2  Cache Nginx chez Emubox

Chez Emubox, vous pouvez utiliser Nginx comme cache HTTP côté serveur dans l'hébergement partagé (Hébergement Web Smart et Business) ainsi que dans toutes les offres de serveurs Cloud. Dans l'hébergement partagé, Nginx peut être activé en plus du serveur web Apache pour mettre en cache du contenu dynamique. Sur les serveurs Cloud, Nginx peut également être opéré comme serveur web et cache devant votre propre application.

Le caching peut être activé et configuré pour tous les produits dans le Panneau de Contrôle Emubox dans les paramètres du site web. Que le contenu puisse être mis en cache et pendant combien de temps est généralement déterminé via les en-têtes HTTP.

 

1.3  HTTP-Header

Définir l'HTTP-Header correspondants est crucial en matière de caching. Ils informent tous les caches possibles si et combien de temps le contenu peut rester dans le cache. L'Header influencent non seulement le comportement d'un cache côté serveur comme Nginx, mais ils contrôlent également le comportement des proxies intermédiaires et finalement du cache du navigateur. L'HTTP-Header qui influencent le caching incluent par ex. Cache-Control et Expire.

Les requêtes sans les en-têtes appropriés ne sont généralement pas mises en cache. C'est particulièrement le cas chez Emubox avec Nginx, sauf si explicitement configuré autrement dans le Panneau de Contrôle Emubox.

Le cache Nginx chez Emubox ne stocke par défaut que du contenu dynamique car le contenu statique peut généralement être délivré directement depuis le cache de système de fichiers rapide. Néanmoins, il peut être intéressant de définir des HTTP-Headers appropriés pour le contenu statique tel que les images. Cela permet au navigateur de conserver ces contenus plus longtemps dans son cache local.

 

1.4  Contenus et Durées de Cache Significatifs

Avant de configurer le cache et d'ajuster votre application web, vous devez réfléchir à ce que vous souhaitez stocker dans le cache et pour combien de temps. La gestion du cache se fait généralement via les HTTP-Headers (voir ci-dessus).

Il est conseillé de garder le temps de cache bas pour le contenu qui change souvent. Pour une page d'actualités, cela est important car sinon, les changements ne seraient visibles qu'après l'expiration du temps de cache. En revanche, les sites web qui sont rarement mis à jour peuvent être conservés dans le cache pendant une période beaucoup plus longue.

Il convient également de noter que le premier appel après l'expiration du temps de cache peut prendre un peu plus de temps car la page doit être recalculée. Par conséquent, la directive suivante est recommandée : définissez le cache aussi longtemps que possible, mais aussi court que nécessaire.

Veuillez noter que bien qu'il existe l'option dans le Panneau de Contrôle Emubox pour vider le cache Nginx, cela n'a aucun effet sur les proxies et le cache du navigateur. Vider activement le cache Nginx n'aide que dans une mesure limitée si le contenu est autorisé à être mis en cache trop longtemps.

 

1.5  Zones Protégées par Mot de Passe

De manière générale, les zones avec protection par mot de passe ne sont pas mises en cache par Nginx pour des raisons de sécurité.

Attention :  Si une page est déjà présente dans le cache et que la protection par mot de passe est définie par la suite, le contenu mis en cache reste accessible sans mot de passe jusqu'à son expiration. Il est donc conseillé de vider le cache Nginx via le Panneau de Contrôle Emubox après avoir créé une protection par mot de passe.

1.6  Vider le Cache

Dans certains cas, il peut être conseillé de vider le cache Nginx dans le Panneau de Contrôle Emubox. Par exemple, si des ajustements ont été apportés au site web, mais qu'ils ne sont pas encore visibles, et que le cache du navigateur et le cache de l'application ont déjà été vidés. Certains plugins Nginx pour CMS comme WordPress offrent la possibilité de supprimer également le cache Nginx. Cependant, ceux-ci ne sont pas pris en charge par Emubox. Par conséquent, le vidage doit avoir lieu de toute façon via le Panneau de Contrôle Emubox.

 


 

2.  Activation et Configuration

Dans les sections suivantes, nous expliquerons quelles étapes vous devez suivre pour activer le caching pour votre site web.

 

2.1  Paramètres de Base du Site Web

Une condition préalable au caching est que votre site web soit configuré avec Nginx comme serveur web principal. Vous pouvez le spécifier directement lors de la création d'un nouveau site web dans le Panneau de Contrôle Emubox. Pour un site existant, vous devez l'éditer et cliquer sur « Passer aux Paramètres de Base » pour activer Nginx.

  1. Pour cela, allez dans la catégorie « Websites & Domains» > « Dashboard» > « PHP».



  2. Dans les deux cas, vous devez sélectionner un cas d'utilisation qui prend en charge le caching :
    • FPM application served by Apache
      > Optimal pour les sites web statiques et dynamiques (recommandé)
    • FPM application served by nginx
      > Optimal pour les sites web statiques
    • FastCGI application served by Apache
      > Pour les sites web statiques et dynamiques



En général, « FPM application served by Apache » est considérée comme le meilleur choix en ce qui concerne les applications PHP, car elle est spécifiquement conçue à cet effet.

Le cas d'utilisation « FPM application served by Nginx » utilise Nginx ; cependant, comme il ne prend en charge que le contenu statique déjà couvert par le cache de système de fichiers rapide, le caching supplémentaire là-bas ne fournirait aucun avantage et n'est donc pas recommandé.

« FastCGI application served by Apache » est un développement ultérieur du CGI obsolète et est légèrement moins performant par rapport au FPM.

 

2.2  Activer et Configurer le Cache

Une fois la configuration de base de votre site web ajustée pour prendre généralement en charge le caching, vous devez également l'activer explicitement dans le Panneau de Contrôle Emubox dans les paramètres du site web. Vous trouverez les options correspondantes dans la section « Hosting & DNS » puis « Apache & nginx ».



Descendez jusqu'aux paramètres de Nginx et activez le cache.



Veuillez noter qu'après avoir activé le cache, les requêtes ne seront stockées dedans que si votre application (par ex. votre CMS) le permet via les HTTP-Headers appropriés. Par défaut, Nginx ne stocke pas les requêtes qui n'ont pas ces Headers. Vous pouvez changer ce comportement avec le paramètre « Comportement de Repli », et vous pouvez spécifier que le contenu sans les en-têtes appropriés devrait également être mis en cache. Cependant, cela ne devrait être fait que dans des cas exceptionnels. Normalement, la route via les HTTP-Headers est préférée, car elle permet un contrôle beaucoup plus précis sur ce qui doit rester dans le cache pendant combien de temps dans les applications web. Ce paramètre n'affecte pas le contenu avec des HTTP-Headers.

Nous recommandons généralement de ne permettre que du contenu dynamique pour le caching de Nginx, car principalement seul le contenu dynamique bénéficie du caching. Le contenu statique est déjà mis en cache très efficacement par le système de fichiers et ne remplirait que inutilement le cache Nginx.

Après avoir configuré vos paramètres de cache, activez-les en cliquant sur « OK ».

 


 

3.  Personnaliser l'Application Web

Pour garantir que le caching fonctionne, votre application doit définir des HTTP-Headers qui informent Nginx si et combien de temps le contenu correspondant peut être stocké dans le cache. Si aucun en-tête de ce type n'est défini, Nginx, par défaut, ne stocke rien dans le cache. Bien que vous puissiez ajuster ce comportement en configurant le comportement de repli du cache, cela n'est généralement pas recommandé. Vous devez vous assurer que votre application web définit les HTTP-Headers appropriés pour le contenu pouvant être mis en cache.

Pour la plupart des CMS courants, il existe des plugins qui peuvent s'en occuper pour vous. Voici quelques exemples :

 

WordPress :

 

Joomla! :

Pour les applications écrites soi-même, des ajustements dans le code peuvent être nécessaires pour définir les HTTP-Headers correctement. Dans certains cas, les en-têtes peuvent également être définis via « .htaccess ».


Was this article helpful?

mood_bad Dislike 0
mood Like 0
visibility Views: 458



Impossible de trouver ce que vous cherchez?

Nos experts en soutien sont heureux de vous aider personnellement!



CONTACTEZ LE SUPPORT