Caching avec Nginx

Informations générales

Qu’est-ce qu’un cache?

Un cache est une mémoire tampon qui permet d’augmenter l’efficacité de la récupération de données dans une mémoire afin de répondre directement à diverses requêtes sans avoir besoin de procéder à des calculs. Le résultat du premier calcul de la requête se trouve déjà dans le cache et peut donc être livré plus rapidement. Veuillez noter qu’il existe différents caches. Pour les applications Web, il s’agit principalement du cache du serveur (dans ce cas, le cache Nginx), du cache d’application et du cache du navigateur.

Côté serveur, ce sont surtout les contenus dynamiques qui profitent de la mise en cache, car ils sont généralement contraignants à générer et souvent liés à des requêtes de base de données en arrière-plan.

Cache Nginx chez Hostpoint

Chez Hostpoint, vous pouvez utiliser Nginx sur le Shared Hosting (Hébergement Smart et Business) et avec toutes les offres Managed Flex Server comme cache HTTP côté serveur. Sur le Shared Hosting, Nginx peut être activé en plus du serveur Web Apache afin de mettre en cache les contenus dynamiques. Sur les Managed Flex Servers à partir de la taille «M», Nginx peut également être utilisé comme serveur Web et cache avant l’application propre.

Pour tous les produits, la mise en cache peut être activée et configurée dans les paramètres du site Web du Control Panel Hostpoint. L’en-tête HTTP détermine généralement si le contenu peut être mis en cache et pendant combien de temps.

En-tête HTTP

La définition des en-têtes HTTP appropriés est cruciale pour la mise en cache. Elle indique à tous les caches possibles si le contenu peut rester en cache et pour combien de temps. Les en-têtes influent non seulement sur le comportement d’un cache côté serveur comme Nginx, mais contrôlent également le comportement des proxies intermédiaires et au final, du cache du navigateur. Les en-têtes HTTP qui influent sur la mise en cache sont p. ex. «Cache-Control» et «Expire».

Les requêtes sans en-tête correspondant ne sont normalement pas mises en cache. Chez Hostpoint, c’est aussi le cas notamment pour Nginx, sauf en cas de configuration explicitement différente dans le Control Panel Hostpoint.

Le cache Nginx chez Hostpoint stocke uniquement les contenus dynamiques par défaut, car les contenus statiques peuvent normalement être livrés directement depuis le cache rapide du système de fichiers. Néanmoins, il peut toujours être utile de définir des en-têtes HTTP appropriés pour les contenus statiques tels que les images, car cela permet au navigateur de conserver ces contenus dans le cache local pendant une période plus longue.

Périodes et contenus recommandés pour le cache

Avant de configurer le cache et d’ajuster votre application Web, vous devez réfléchir à ce que vous voulez stocker dans le cache et pour combien de temps. Le cache est normalement contrôlé par les en-têtes HTTP (voir ci-dessus).

Il est recommandé de maintenir la durée du cache à un niveau bas pour les contenus qui changent fréquemment. C’est important p. ex. pour une page d’actualités, car les changements seraient sinon visibles uniquement après l’expiration du cache. Les sites Web qui ne sont que rarement modifiés peuvent par contre être conservés beaucoup plus longtemps dans le cache.

Il faut également tenir compte du fait que le premier appel après l’expiration de la période de cache peut à nouveau prendre un peu plus de temps, car la page doit être recalculée. Il est donc recommandé d’appliquer la règle suivante: configurez le cache sur une période aussi longue que possible, mais aussi courte que nécessaire.

Veuillez noter que bien qu’il soit possible de vider le cache Nginx dans le Control Panel Hostpoint, cela n’a aucun effet sur les éventuels proxies et le cache du navigateur. Le vidage actif du cache Nginx n’est donc utile que dans une mesure limitée si les contenus sont autorisés à être mis en cache trop longtemps.

Zones protégées par un mot de passe

En principe, les zones protégées par un mot de passe ne sont pas mises en cache par Nginx pour des raisons de sécurité.

Vider le cache

Dans certains cas, il peut être utile de vider le cache Nginx dans le Control Panel Hostpoint. P. ex. si des modifications ont été apportées au site Web mais qu’elles ne sont pas encore visibles et que le cache du navigateur et le cache d’application ont déjà été vidés. Certains plugins Nginx pour les CMS comme WordPress offrent également la possibilité de vider le cache Nginx. Ils ne sont cependant pas pris en charge par Hostpoint; c’est pourquoi le vidage doit toujours être effectué via le Control Panel Hostpoint si nécessaire.

Activation et configuration

Dans les sections ci-dessous, nous vous expliquons les étapes à suivre pour activer la mise en cache pour votre site Web.

Paramétrage de base du site Web

L’une des conditions requises pour la mise en cache est que Nginx soit défini comme serveur Web primaire sur votre site Web. Vous pouvez le spécifier directement dans le Control Panel Hostpoint lors de la création d’un nouveau site Web. Si vous avez un site Web existant, vous devez le modifier et cliquer sur «Modifier le paramètre par défaut» pour activer Nginx.

Caching avec Nginx

Dans les deux cas, vous devez sélectionner un cas d’utilisation qui supporte la mise en cache:

  • Nginx (proxy) avec Apache/PHP
  • Nginx avec application propre (disponible à partir de Managed Flex Server M)

Le cas d’utilisation «Site Web statique avec Nginx» utilise certes Nginx, mais comme il prend uniquement en charge les contenus statiques déjà couverts par le cache rapide du système de fichiers, une mise en cache supplémentaire n’apporterait aucun avantage ici et n’est donc pas disponible.

Caching avec Nginx

Activer et configurer la mise en cache

Dès que la configuration de base de votre site Web a été adaptée de manière à ce que Nginx soit utilisé comme serveur Web primaire et que la mise en cache est donc en principe prise en charge, vous devez également l’activer explicitement dans les paramètres du site Web du Control Panel Hostpoint. Les options correspondantes se trouvent dans la section «Réglages proxy».

Caching avec Nginx

Notez qu’après l’activation du cache, les requêtes sont uniquement stockées dans celui-ci si votre application (p. ex. votre CMS) le permet au moyen d’en-têtes HTTP. Par défaut, Nginx ne stocke pas les requêtes qui ne disposent pas de tels en-têtes. Vous pouvez modifier ce comportement avec le paramètre «Comportement Fallback» et spécifier que les contenus sans en-tête correspondant doivent également être mis en cache. Cela devrait toutefois être fait uniquement dans des cas exceptionnels. Il est normalement préférable de passer par des en-têtes HTTP car cela permet un contrôle plus fin de ce qui doit rester dans le cache et pendant combien de temps pour les applications Web. Ce paramètre n’a aucune influence sur les contenus avec en-têtes HTTP.

A partir du Managed Flex Server M, vous avez également la possibilité de spécifier si les contenus statiques doivent être stockés dans le cache en plus des contenus dynamiques. Nous recommandons en temps normal d’autoriser uniquement les contenus dynamiques pour la mise en cache Nginx, car seuls les contenus dynamiques profitent généralement de la mise en cache. Les contenus statiques sont déjà mis en cache très efficacement par le système de fichiers et ne feraient que remplir inutilement le cache Nginx.

Personnaliser l’application Web

Pour que la mise en cache fonctionne, votre application doit définir des en-têtes HTTP qui indiquent à 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 ne stocke rien dans le cache par défaut. Vous pouvez personnaliser ce comportement en configurant le «Comportement Fallback» du cache, mais ceci n’est normalement pas recommandé. Vous devez vous assurer que votre application Web définisse les en-têtes appropriés pour les contenus pouvant être mis en cache.

Des plugins capables de gérer cela pour vous existent pour la plupart des CMS courants. En voici quelques exemples:

 

Wordpress:

 

Joomla:

Pour les applications codées par vos soins, des ajustements de code peuvent être nécessaires pour s’assurer que les en-têtes sont définis correctement. Dans certains cas, les en-têtes peuvent également être définis via .htaccess.

 

Avez-vous trouvé ce que vous cherchiez?

Nos professionnels de l’assistance se feront un plaisir de vous aider personnellement!

 

© 2001 - Hostpoint AG