Guide pour la mise en cache du serveur avec Nginx et PHP

cache serveur avec nginx et php ubuntu debian redhat centos

Le “caching” ou la mise en cache du serveur est une technique cruciale pour améliorer les performances d’un site web en réduisant la charge du serveur et en améliorant les temps de réponse. Dans ce guide, nous allons vous montrer comment mettre en œuvre le caching de serveur en utilisant Nginx et PHP, étape par étape.

Étape 1 : Prérequis

Avant de commencer, assurez-vous d’avoir Nginx et PHP installés sur votre serveur. Vous pouvez les installer sur Ubuntu/Debian ou CentOS/RHEL en utilisant les commandes suivantes :

Ubuntu/Debian :

$ sudo apt update
$ sudo apt install nginx php-fpm

CentOS/RHEL :

$ sudo yum install epel-release
$ sudo yum install nginx php-fpm

Étape 2 : Configuration Nginx de base

Une fois Nginx et PHP installés, configurez Nginx pour servir les fichiers PHP. Ouvrez votre fichier de configuration Nginx, généralement situé dans /etc/nginx/nginx.conf ou /etc/nginx/sites-available/default, et ajoutez ou modifiez ce qui suit dans votre bloc server :

location~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock; # Ajustez la version si nécessaire
}

Ensuite, redémarrez Nginx pour appliquer les changements :

$ sudo systemctl restart nginx

Étape 3 : Configuration du cache FastCGI

Le cache FastCGI est un puissant mécanisme de mise en cache intégré à Nginx. Activez-le avec les étapes suivantes :

Étape 1 : Ouvrez la configuration de votre bloc de serveur Nginx :

$ sudo nano /etc/nginx/sites-available/default

Étape 2 : Ajoutez la configuration suivante dans votre bloc server :

location~ \.php$ {
    include snippets/fastcgi-php.conf; 
    fastcgi_pass unix:/run/php/php7.4-fpm.sock; # Ajustez la version si nécessaire# Activer le cache FastCGIfastcgi_cache mon_cache;
    fastcgi_cache_key"$scheme$request_method$host$request_uri";
    fastcgi_cache_valid2003021h;
    fastcgi_cache_use_stale updating error timeout invalid_header http_500;
    # Définir la zone de cache et sa taille fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=mon_cache:10m max_size=100m;
    # En-têtes de cache à inclure dans la réponseadd_header X-FastCGI-Cache $upstream_cache_status;
}

Étape 3 : Enregistrez le fichier et quittez l’éditeur de texte.

Étape 4 : Testez la configuration Nginx pour détecter les erreurs de syntaxe :

$ sudo nginx -t

Étape 5 : S’il n’y a pas d’erreur, rechargez Nginx pour appliquer les changements :

$ sudo systemctl reload nginx

Étape 4 : Niveaux de cache et configuration

Vous pouvez personnaliser les niveaux de cache en fonction des performances de votre serveur et de vos besoins en matière de mise en cache. Les niveaux de cache courants incluent levels=1:2levels=1:2:2, et levels=1:2:4. Voici comment les modifier :

Étape 1 : Ouvrez la configuration de votre bloc de serveur Nginx :

$ sudo nano /etc/nginx/sites-available/default 

Étape 2 : Modifiez la directive fastcgi_cache_path pour définir le niveau de cache voulu. Par exemple :

fastcgi_cache_path /var/cache/nginx levels=1:2:4 keys_zone=mon_cache:10m max_size=100m;

Étape 3 : Enregistrez le fichier et quittez l’éditeur de texte.

Étape 4 : Testez la configuration Nginx pour détecter les erreurs de syntaxe :

$ sudo nginx -t

Étape 5 : S’il n’y a pas d’erreur, rechargez Nginx pour appliquer les changements :

$ sudo systemctl reload nginx

Étape 5 : Purge et expiration du cache

La gestion du cache est cruciale pour maintenir un système de mise en cache efficace. Vous pouvez vider manuellement le cache à l’aide de la commande suivante :

$ sudo rm -r /var/cache/nginx/mon_cache/*

Pour la purge automatique du cache, envisagez d’intégrer une logique d’invalidation du cache dans votre application. Sinon, explorez des outils tiers comme le module Nginx Cache Purge pour une gestion de cache plus avancée.

Étape 6 : Surveillance et optimisation

6.1. Surveiller les performances du cache

Il est essentiel de surveiller régulièrement les performances du cache de votre serveur pour s’assurer qu’il fonctionne efficacement. Vous pouvez utiliser des outils comme le module de statut intégré de Nginx ou des solutions de surveillance externes. Voici comment surveiller les performances du cache et quoi rechercher :

Étape 1 : Activez le module de statut de Nginx en ajoutant ce qui suit dans la configuration de votre bloc de serveur Nginx :

location /nginx_status {
    stub_statuson;
    allow127.0.0.1; # Ajustez à l'adresse IP de votre serveur ou réseaudeny all;
}

Étape 2 : Enregistrez le fichier et quittez l’éditeur de texte.

Étape 3 : Testez la configuration Nginx pour détecter les erreurs de syntaxe :

$ sudo nginx -t

Étape 4 : S’il n’y a pas d’erreur, rechargez Nginx pour appliquer les changements :

$ sudo systemctl reload nginx

Étape 5 : Accédez à la page de statut Nginx en utilisant un navigateur web ou des outils comme curl :

$ curl http://localhost/nginx_status

Recherchez des mesures clés telles que :

  • Connexions actives
  • Requêtes acceptées et traitées par le serveur
  • Taux de hits du cache
  • Manques du cache
  • Utilisation mémoire

6.2. Optimisation des paramètres de cache

En fonction des données de surveillance collectées, il est crucial d’optimiser vos paramètres de cache pour maintenir des performances optimales. Voici quelques ajustements à envisager :

  • Tailles du cache : En cas de taux d’éviction élevés ou de problèmes de mémoire, ajustez la taille du cache (par ex. augmentez max_size dans fastcgi_cache_path).
  • Niveaux de cache : Selon les ressources de votre serveur et les modèles de trafic, modifiez les niveaux de cache dans fastcgi_cache_path pour une meilleure organisation ou réduction de l’utilisation mémoire.
  • Temps d’expiration du cache : Optimisez les temps d’expiration du cache (par ex. fastcgi_cache_valid) pour équilibrer fraîcheur et efficacité du cache.

N’oubliez pas de tester et surveiller les effets de ces changements pour vous assurer qu’ils sont en phase avec les objectifs de performance de votre site web.

6.3. Dépannage des problèmes courants

Lorsque des problèmes surviennent avec le caching de serveur, il est crucial de les diagnostiquer et de les résoudre rapidement. Les problèmes courants peuvent inclure :

  • Clés de cache mal configurées : Vérifiez votre configuration fastcgi_cache_key pour vous assurer qu’elle génère des clés uniques pour différentes requêtes.
  • Problèmes de purge du cache : Vérifiez votre logique ou vos outils de purge du cache pour vous assurer qu’ils invalident correctement le contenu mis en cache si nécessaire.
  • Paramètres d’expiration du cache incorrects : Revoyez vos directives fastcgi_cache_valid pour vous assurer qu’elles correspondent à la fréquence de mise à jour prévue de votre contenu.

Pour le dépannage, consultez les logs d’erreur Nginx (/var/log/nginx/error.log) et les logs d’accès (/var/log/nginx/access.log) pour obtenir des informations sur des problèmes spécifiques. Explorez également les forums et communautés en ligne pour trouver des solutions à des défis de mise en cache courants.

Conclusion

En suivant ces étapes, vous avez mis en œuvre avec succès le caching de serveur avec Nginx et PHP. Cette technique d’optimisation améliorera considérablement les performances de votre site web, réduira la charge du serveur et offrira une expérience utilisateur plus rapide. N’oubliez pas que la mise en cache nécessite une surveillance et une optimisation régulières pour garantir qu’elle continue de produire des résultats optimaux à mesure que votre site web évolue et se développe. Bon caching !

Laisser un commentaire