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 …

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_zonepour 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_proxypour 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 :
- Utilisez le
chemin_cache_proxydirective de l'exemple ci-dessus et ajoutezproxy_cache mon_cacheà votre configuration. - Activer la mise en cache dans les éléments pertinents
serveurouemplacementbloc:proxy_cache mon_cache; - Vous pouvez éventuellement inclure l’une des directives de réglage fin mentionnées précédemment pour améliorer les performances.
- 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_zonepeut 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.
sbb-itb-59e1987
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 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
- Maîtriser les configurations Nginx pour des performances optimales du serveur Web
- Les 7 meilleures techniques de mise en cache des données pour les charges de travail de l'IA
- Comment la mise en cache des données améliore les performances des modèles d'IA
- Configuration NGINX au-delà des bases : l'avis de Serverion sur les secrets des scripts Lua