Contactez nous

info@serverion.com

Appelez nous

+1 (302) 380 3902

Retour sur la configuration NGINX : Serverion fait revivre l'art perdu du réglage du cache proxy

Retour sur la configuration NGINX : Serverion fait revivre l'art perdu du réglage du cache proxy

Vous souhaitez des sites Web plus rapides et des charges de serveur plus faibles ? La mise en cache proxy NGINX est la solution idéale. En stockant le contenu fréquemment demandé, elle accélère la diffusion et allège la charge de travail de vos serveurs d'origine. Serverion partage des conseils pratiques pour optimiser la configuration de votre cache pour de meilleures performances et une meilleure fiabilité.

Principaux points à retenir :

  • Proposer du contenu obsolète:Utilisez les réponses mises en cache pendant les temps d'arrêt du serveur avec proxy_cache_use_stale.
  • Mises à jour en arrière-plan: Actualisez les entrées du cache sans perturber les utilisateurs proxy_cache_background_update.
  • Prévenir les surcharges: Évitez de surcharger votre serveur d'origine avec proxy_cache_lock.

Exemple de configuration :

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; proxy_cache my_cache; proxy_cache_use_stale updating; proxy_cache_background_update on; proxy_cache_lock on; 

Ces paramètres garantissent des réponses rapides, une utilisation efficace des ressources et une diffusion fiable du contenu. Que vous utilisiez un petit VPS ou un serveur à fort trafic, ces techniques peuvent vous aider à tirer le meilleur parti de la mise en cache proxy NGINX.

NGINX : mise en cache de contenu avec proxy inverse (super rapide …

NGINX

Principes fondamentaux de la mise en cache du proxy NGINX

Les techniques de réglage du cache de Serverion s'appuient sur les principes fondamentaux de la mise en cache proxy NGINX, qui consiste à stocker et à diffuser des copies du contenu d'origine. Le système utilise trois composants principaux : le chemin du cache, une zone de mémoire partagée et un gestionnaire de cache qui supprime les fichiers expirés ou les fichiers les moins récemment utilisés (LRU) lorsque le cache atteint sa limite.

Opération de cache proxy NGINX

Lorsque NGINX traite une requête, il vérifie d'abord sa zone de mémoire partagée pour vérifier si le contenu demandé est déjà mis en cache. Cette recherche en mémoire permet de déterminer rapidement les succès ou les échecs du cache. À titre de référence, une zone de clés de 1 Mo peut stocker environ 8 000 clés de cache[1].

Voici comment fonctionne le processus de mise en cache :

  • NGINX hache la demande pour créer une clé de cache unique.
  • Il vérifie la zone de mémoire partagée pour cette clé.
  • Si la clé est trouvée (cache hit), le contenu est servi directement depuis le cache.
  • Si la clé n'est pas trouvée (échec du cache), le contenu est récupéré à partir du serveur d'origine et stocké dans le cache pour une utilisation ultérieure.

Serverion optimise les performances en garantissant des recherches de clés efficaces et en organisant le stockage du cache à l'aide de hiérarchies de répertoires.

Éléments du cache principal

Directif Objectif Impact
chemin_cache_proxy Spécifie l'emplacement de stockage du cache Détermine où et comment le contenu est mis en cache
proxy_cache Active la mise en cache pour des requêtes spécifiques Active la mise en cache dans un bloc d'emplacement
touches_zone Alloue de la mémoire partagée pour les clés de cache Permet des recherches rapides en mémoire
inactif Définit la durée pendant laquelle les éléments inutilisés restent dans le cache Contrôle la fraîcheur du cache et le moment de l'expulsion

Pour maximiser les performances, utilisez un système à deux niveaux niveaux hiérarchie pour éviter les ralentissements du système de fichiers. De plus, définissez use_temp_path=off pour écrire les fichiers mis en cache directement à leur emplacement final, réduisant ainsi la surcharge d'E/S.

NGINX respecte les directives de cache du serveur d'origine. Il ne stocke que les réponses contenant une Expire en-tête avec une date future ou un Cache-Control en-tête avec un âge maximum valeur supérieure à zéro.

Vous pouvez désormais appliquer ces principes dans votre configuration de cache proxy NGINX.

[1] Documentation NGINX : une zone de clés de 1 Mo stocke les données d'environ 8 000 clés.

Guide de configuration du cache proxy NGINX

Découvrez comment configurer et optimiser la mise en cache du proxy NGINX étape par étape.

Paramètres du cache

La base de la configuration du cache proxy NGINX est la chemin_cache_proxy directive. Voici un exemple de configuration :

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; 

Cette configuration crée une structure de répertoire à deux niveaux, alloue 10 Mo pour le touches_zone (suffisant pour environ 80 000 clés), définit une taille de cache maximale de 10 Go et définit un délai d'inactivité de 60 minutes.

Vous pouvez également inclure ces directives facultatives pour un meilleur contrôle :

Directif Objectif
proxy_cache_use_stale Diffuse du contenu obsolète si les serveurs d'origine ne sont pas disponibles
proxy_cache_revalidate Utilise des requêtes GET conditionnelles pour vérifier si le contenu est toujours valide
proxy_cache_background_update Actualise le contenu obsolète en arrière-plan
proxy_cache_lock Empêche les requêtes multiples de submerger le serveur d'origine

Après avoir défini ces paramètres, allouez de la mémoire et de l’espace disque en fonction du trafic attendu.

Gestion de la taille du cache

Pour dimensionner efficacement votre cache, tenez compte de l'utilisation de la mémoire et du disque. Voici comment :

  • Dimensionnement de la zone mémoire Allouer de la mémoire pour le touches_zone pour répondre à vos besoins de mise en cache :
    keys_zone=enterprise_cache:100m; # Prend en charge environ 800 000 clés de cache 
  • Allocation d'espace disque Ajuster le chemin_cache_proxy pour spécifier l'espace disque maximal :
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=enterprise_cache:100m max_size=10g inactif=24h use_temp_path=off; 

Une fois ces paramètres définis, vous êtes prêt à initialiser et activer votre cache.

Initialisation du cache

Après avoir affiné vos paramètres et votre dimensionnement, suivez ces étapes pour activer la mise en cache :

  1. Utilisez le chemin_cache_proxy directive de l'exemple ci-dessus et ajoutez proxy_cache mon_cache à votre configuration.
  2. Activer la mise en cache dans les éléments pertinents serveur ou emplacement bloc:
    proxy_cache mon_cache; 
  3. Vous pouvez éventuellement inclure l’une des directives de réglage fin mentionnées précédemment pour améliorer les performances.
  4. Surveillez l’état du cache en ajoutant un en-tête personnalisé :
    ajouter_en-tête X-Cache-Status $upstream_cache_status; 

Note:Selon la documentation NGINX, un disque dur de 1 Mo touches_zone peut stocker environ 8 000 clés.

Cette configuration garantit que votre cache est prêt à gérer efficacement le trafic tout en conservant la flexibilité nécessaire aux ajustements.

Gestion du cache NGINX d'entreprise

Une fois votre chemin de cache et vos paramètres définis, il est temps de faire évoluer votre configuration pour gérer efficacement le trafic au niveau de l'entreprise.

Optimisation du taux de réussite du cache

Pour améliorer l'efficacité du cache, activez des fonctionnalités telles que les requêtes conditionnelles et les mises à jour en arrière-plan :

proxy_cache_revalidate activé ; proxy_cache_background_update activé ; proxy_cache_use_stale mise à jour ; 

Évitez de surcharger votre serveur d'origine en configurant ces paramètres :

proxy_cache_lock activé ; proxy_cache_lock_timeout 5 s ; proxy_cache_min_uses 2 ; 

Pour les environnements à fort trafic, répartissez la charge du cache sur plusieurs périphériques de stockage pour améliorer les performances :

split_clients "${request_uri}" $disk { 20% "/data/cache1"; 20% "/data/cache2"; 20% "/data/cache3"; 20% "/data/cache4"; * "/data/cache5"; } 

Une fois votre cache optimisé pour les performances, concentrez-vous sur sa sécurisation pour gérer le contenu sensible.

Contrôles de sécurité du cache

Pour protéger les requêtes sensibles, contournez la mise en cache et personnalisez les clés de cache selon vos besoins :

proxy_cache_bypass $http_pragma; proxy_cache_bypass $cookie_nocache; proxy_ignore_headers Cache-Control; 

Pour le contenu personnalisé ou les demandes basées sur les cookies, ajustez la clé de cache et les méthodes prises en charge :

proxy_cache_key "$host$request_uri$cookie_user"; proxy_cache_methods GET HEAD POST; 

Après avoir sécurisé votre cache, assurez-vous de surveiller en permanence ses performances.

Suivi des performances du cache

Surveillez le comportement du cache à l’aide de définitions d’état pour affiner votre configuration :

Statut Définition
MISE À JOUR Contenu obsolète diffusé pendant qu'une mise à jour est en cours
REVALIDÉ Le contenu mis en cache a été revalidé avec le serveur d'origine

Analyser le Statut du cache X Mesurez régulièrement les indicateurs et ajustez les directives pour les aligner sur les modèles de trafic pour des résultats optimaux.

ServerionConfiguration du cache NGINX

Serverion

Serverion personnalise les paramètres de cache NGINX en fonction des besoins spécifiques de chaque charge de travail. Grâce à des directives de base, ils optimisent les configurations de cache différemment pour les VPS et les serveurs. serveurs dédiés.

Chemins de cache par charge de travail

Charges de travail VPS

Pour les configurations VPS, cette configuration établit un équilibre entre l'efficacité de la mémoire et des temps de réponse rapides :

chemin_cache_proxy /data/nginx/cache niveaux=1:2 zones_clés=SERVERCACHE:10m taille_max=10g inactif=60m chemin_temp_utilisation=désactivé ; clé_cache_proxy "$schéma$méthode_requête$hôte$uri_requête" ; cache_proxy_valide 200 302 60m ; cache_proxy_valide 404 1m ; 

Le touches_zone la taille est définie pour accueillir environ 80 000 clés.

Dedicated Servers

Pour les applications à fort trafic sur des serveurs dédiés, Serverion utilise un système de mise en cache distribué sur plusieurs SSD :

chemin_cache_proxy /cache1 niveaux=1:2 zone_clés=cache1:10m; chemin_cache_proxy /cache2 niveaux=1:2 zone_clés=cache2:10m; chemin_cache_proxy /cache3 niveaux=1:2 zone_clés=cache3:10m; split_clients "${request_uri}" $cachezone { 33% "cache1"; 33% "cache2"; * "cache3"; } 

Cette configuration répartit les écritures du cache de manière uniforme sur trois SSD à l'aide du split_clients directif.

Les valeurs spécifiques de ces configurations sont dérivées du tableau de référence des paramètres de cache de Serverion.

Paramètres d'infrastructure

Pour améliorer encore les performances, les paramètres de travail NGINX sont ajustés pour gérer efficacement les entrées et sorties du cache :

worker_processes auto; worker_connections 1024; worker_cpu_affinity 0-3; # aligne les travailleurs avec les cœurs de processeur 

Ces ajustements garantissent que les réponses mises en cache sont livrées avec une efficacité maximale.

Résumé : Résultats du réglage du cache NGINX

Serverion a amélioré les performances et la fiabilité de ses systèmes d'hébergement Grâce à des ajustements détaillés du cache proxy. En affinant la hiérarchie du cache, en gérant les paramètres de fraîcheur et en optimisant le traitement des en-têtes, ils ont assuré une diffusion fluide du contenu. Cache X-Proxy Les métriques ont permis aux équipes informatiques d'ajuster efficacement les paramètres de cache, ce qui a permis d'obtenir des temps de réponse plus rapides, de réduire la pression sur les serveurs d'origine et d'améliorer la disponibilité des opérations de l'entreprise.

Articles de blog associés

fr_FR