Comment configurer le cache Nginx FastCGI sur Ubuntu

Nginx FastCGI Cache améliore les performances de votre site Web en réduisant la charge sur votre serveur Ubuntu. Il est particulièrement efficace pour le contenu dynamique, permettant à Nginx de diffuser directement le contenu mis en cache sans utiliser de processeurs PHP. Cela accélère le temps de réponse et réduit l’utilisation des ressources. Voici les principales fonctionnalités et avantages de Nginx FastCGI Cache pour votre infrastructure Web :

  • Livraison de contenu efficace : Nginx FastCGI Cache stocke la sortie de contenu dynamique, permettant un accès et une distribution plus rapides.
  • Charge de serveur réduite : La diffusion de contenu mis en cache minimise le nombre d'appels PHP, allégeant ainsi la charge du serveur.
  • Évolutivité : Nginx FastCGI Cache aide à gérer l'augmentation du trafic sans compromettre la vitesse à mesure que votre site Web se développe.
  • Mise en cache personnalisable : Cette option offre une flexibilité dans la définition des conditions d'expiration, de contournement et de mise à jour du cache en fonction de vos besoins.
  • Expérience utilisateur améliorée : Des temps de chargement plus rapides du site Web améliorent l'expérience utilisateur, ce qui a un impact positif sur la fidélisation des visiteurs et les classements SEO.
  • Optimisation des ressources : Optimise l'utilisation des ressources du serveur, conduisant à une gestion plus efficace des demandes simultanées.
  • Débogage facile : Fournit des mécanismes simples pour déboguer et valider le contenu mis en cache, garantissant ainsi un fonctionnement fluide.
  • Compatibilité: Fonctionne de manière transparente avec les plates-formes CMS populaires, améliorant leurs performances sans configuration approfondie.

Alors que nous abordons les procédures techniques, gardez à l'esprit que la mise en œuvre de Nginx FastCGI Cache est un moyen stratégique d'améliorer l'efficacité de votre site et la satisfaction des utilisateurs. Commençons par améliorer les performances de votre site Web avec Nginx FastCGI Cache.

Configurer le cache Nginx FastCGI

Modifier le fichier de configuration Nginx pour le cache FastCGI

Ouvrez le fichier de configuration

Tout d'abord, vous devez ouvrir le nginx.conf déposer. Nous utiliserons l'éditeur de texte nano, mais vous pouvez utiliser n'importe quel éditeur de texte avec lequel vous êtes à l'aise. Entrez cette commande :

sudo nano /etc/nginx/nginx.conf

Configurer les paramètres FastCGI

Dans le fichier, localisez le bloc HTTP et ajoutez les lignes suivantes :

fastcgi_cache_path /var/nginx/fastcgi_cache levels=1:2 keys_zone=fcgicache:150m max_size=20g inactive=60m use_temp_path=off;
fastcgi_cache_key "$scheme$request_method$host$request_uri";

Après avoir saisi les lignes, appuyez sur CTRL + O, taper Y, puis appuyez sur CTRL + X pour quitter.

Comprendre les paramètres FastCGI

  • fastcgi_cache_path: Ce paramètre définit l'emplacement de stockage du cache FastCGI (/var/nginx/fastcgi_cache). C’est essentiel car il dicte l’emplacement du contenu mis en cache.
  • levels=1:2: Cela crée une hiérarchie de répertoires à deux niveaux sous votre emplacement de cache. Cette conception permet de répartir les fichiers sur deux répertoires, ce qui réduit le risque de goulots d'étranglement d'E/S disque.
  • keys_zone: Il précise le nom de la zone mémoire partagée (fcgicache) et sa taille (150M). La zone de mémoire partagée est cruciale pour stocker les clés de cache et les métadonnées.
  • max_size: Ceci définit la taille maximale du cache (dans cet exemple, 20GB). Lorsque cette limite est atteinte, les fichiers les plus anciens seront supprimés pour laisser de la place aux nouveaux.
  • inactive: Ceci spécifie la durée après laquelle les données non consultées seront supprimées du cache. Dans cet exemple, la durée est fixée à 60 minutes.
  • use_temp_path: Régler ceci sur off demande à Nginx d'écrire les fichiers directement dans le dossier de cache spécifié, en contournant l'utilisation d'une zone de stockage temporaire.
  • fastcgi_cache_key: Il est utilisé pour définir la clé pour la recherche dans le cache. Nginx crée un hachage MD5 de cette clé à utiliser comme nom des fichiers de cache.

Configurer le bloc serveur Nginx pour le cache FastCGI

Modifier le fichier de blocage du serveur

Ensuite, vous devez modifier le fichier de blocage de votre serveur. Pour cet exemple, nous supposerons que le fichier est nommé example.com.conf. Ouvrez-le avec la commande suivante :

sudo nano /etc/nginx/sites-available/example.com.conf

Insérer les directives de cache FastCGI

En supposant que LEMP soit installé, insérez les lignes suivantes dans le bloc d'emplacement des fichiers PHP :

fastcgi_cache fcgicache;
fastcgi_cache_valid 200 60m;
fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;
fastcgi_cache_min_uses 1;
fastcgi_cache_lock on;
add_header X-FastCGI-Cache $upstream_cache_status;

Comprendre les directives de cache FastCGI

  • fastcgi_cache: active la mise en cache et spécifie la zone de mémoire partagée définie précédemment.
  • fastcgi_cache_valid: définit la durée du cache pour des codes d'état HTTP spécifiques.
  • fastcgi_cache_use_stale: définit les conditions dans lesquelles Nginx peut utiliser une réponse obsolète en cache.
  • fastcgi_cache_min_uses: Spécifie la fréquence à laquelle une réponse doit être demandée avant qu'elle ne soit mise en cache.
  • fastcgi_cache_lock: garantit qu'une seule requête à la fois remplit un nouvel élément de cache, empêchant ainsi une « bousculade du cache ».
  • add_header: Ajoute un en-tête personnalisé (X-FastCGI-Cache) à la réponse HTTP, indiquant si la réponse a été servie à partir du cache.

Configurer la purge du cache FastCGI sur Nginx

Configuration de la purge du cache

La purge du cache vous permet de supprimer le contenu du cache avant son expiration. Pour configurer la purge du cache, créez une directive de purge du cache en insérant les lignes suivantes dans le fichier de bloc de votre serveur :

location ~ /purge(/.*) {
    # Uncomment the following two lines to allow purge only from the webserver
    allow 127.0.0.1;
    deny all;
    fastcgi_cache_purge fcgicache "$scheme$request_method$host$1";
}

Presse CTRL + O, taper Y, puis appuyez sur CTRL + X pour quitter l'éditeur de texte.

Approche alternative pour les problèmes de purge du cache

Si vous rencontrez des problèmes de purge du cache, vous pouvez plutôt ajuster le délai d'expiration du cache. Pour les sites Web à trafic moyen à élevé, il est souvent plus efficace de définir un taux d'expiration plus faible, par exemple 2 heures d'inactivité et 4 heures pour l'expiration globale.

Testez et redémarrez le serveur Nginx

Testez la configuration

Il est essentiel de valider la configuration de Nginx pour éviter les erreurs de syntaxe ou les mauvaises configurations. Utilisez la commande suivante :

sudo nginx -t

Vous devriez voir le résultat suivant si tout est correct :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Redémarrer le serveur Nginx

Enfin, redémarrez le serveur Nginx pour appliquer les modifications que vous avez apportées :

sudo systemctl restart nginx

Créer et optimiser le répertoire de cache Nginx FastCGI

Créer un répertoire de cache FastCGI

Créons maintenant le répertoire dans lequel Nginx stockera les fichiers cache. Ce chemin a été spécifié plus tôt dans le nginx.conf déposer:

sudo mkdir -p /var/nginx/fastcgi_cache

Optimiser le répertoire de cache avec tmpfs (facultatif)

Si votre système dispose de suffisamment de RAM, vous pouvez choisir d'utiliser tmpfs pour stocker le cache en mémoire. Cela peut entraîner des temps d’accès plus rapides par rapport au stockage sur disque. Soyez toutefois prudent, car le stockage en RAM peut consommer des ressources mémoire importantes. Voici comment monter le répertoire de cache en tant que tmpfs:

Modifier /etc/fstab déposer:

sudo nano /etc/fstab

Ajoutez la ligne suivante à la fin du fichier :

tmpfs   /var/nginx/fastcgi_cache   tmpfs   defaults,size=512M   0 0

Cela alloue 512 Mo de votre RAM pour le cache. Vous pouvez ajuster la taille en conséquence en fonction des ressources de votre système.

Montez le tmpfs:

sudo mount -a

Cette configuration garantit que le cache FastCGI est stocké en mémoire, offrant des performances plus rapides au détriment de l'utilisation de la RAM.

Valider la fonctionnalité du cache Nginx FastCGI

Testez le cache FastCGI avec curl

Vous pouvez vérifier que FastCGI Cache fonctionne correctement en utilisant le curl commande. En fonction de vos paramètres de cache, vous devrez peut-être exécuter la commande plusieurs fois avant de voir une alerte de cache :

curl -I http://www.your-domain.com

Si vous n'avez pas curl installé, vous pouvez l'installer avec :

sudo apt install curl -y

Dans la sortie, recherchez le X-FastCGI-Cache: HIT entête:

~$ curl -I https://www.example.com/
HTTP/1.1 200 OK
...
X-FastCGI-Cache: HIT
...

Cela indique que la demande a été servie à partir du cache.

Configurer les exclusions de cache

Les éléments du site Web tels que les pages d’administration WordPress, les sections de commentaires et les plans de site ne doivent pas être mis en cache. Pour configurer Nginx pour qu'il ne les mette pas en cache, ajoutez le code suivant au-dessus du location (~\.php$) ligne dans le fichier de blocage de votre serveur :

# Cache by default
set $skip_cache 0;

# Don't cache URIs containing the following
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-..php|^/feed/|/tag/./feed/|index.php|/.sitemap..(xml|xsl)") {
    set $skip_cache 1;
}

# Don't cache for logged-in users or comment authors
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
    set $skip_cache 1;
}

# POST requests and URIs with a query string should bypass the cache
if ($request_method = POST) {
    set $skip_cache 1;
}

if ($query_string != "") {
    set $skip_cache 1;
}

Exclusions du cache de débogage (facultatif)

Si vous souhaitez ajouter des notes à des fins de débogage, vous pouvez inclure une note personnalisée sous chaque set $skip_cache 1; déclaration comme celle-ci :

set $skip_reason "your custom note";

Cela peut être utile pour comprendre pourquoi certains contenus ne sont pas mis en cache lors du dépannage.

Après avoir effectué ces configurations, assurez-vous de tester la configuration et de redémarrer Nginx :

sudo nginx -t
sudo systemctl restart nginx

Meilleures pratiques et considérations avec le cache Nginx FastCGI

Bien que la mise en cache FastCGI puisse offrir des avantages significatifs en termes de performances, il est essentiel de garantir que la configuration est optimisée pour votre cas d'utilisation spécifique et vos ressources serveur :

  • Évaluez la quantité de RAM disponible avant d’opter pour tmpfs pour la mise en cache. Assurez-vous que votre serveur dispose de suffisamment de mémoire pour les autres processus critiques.
  • Adaptez les exclusions de cache à votre application. Les exemples fournis sont spécifiquement destinés à WordPress, mais vous pourriez avoir besoin de différentes exclusions pour d'autres types d'applications.
  • Surveillez régulièrement l’utilisation et les performances du cache. Si le cache consomme trop d'espace disque ou n'améliore pas les performances comme prévu, envisagez d'ajuster le chemin, la taille ou les paramètres du cache en conséquence.

Conclusion

Bien, tu l'as maintenant! Nous avons parcouru les étapes pour installer Nginx FastCGI Cache sur votre serveur Ubuntu, offrant ainsi une amélioration des performances de votre site Web en gérant efficacement le contenu dynamique. N'oubliez pas qu'il est essentiel de maintenir vos paramètres de cache en fonction des besoins de votre site pour maximiser les avantages. N'hésitez pas à modifier les paramètres pour trouver ce point idéal. Que vous soyez un professionnel chevronné ou un nouveau venu dans la gestion de serveurs, nous espérons que ce guide vous sera un compagnon utile pour optimiser votre présence sur le Web. Restez simple, restez cohérent, et voici une expérience de site Web plus rapide et plus fluide pour vous et vos visiteurs !

Joshua James
Suis-moi
Les derniers articles par Joshua James (tout voir)

Laissez un commentaire