Maison >Opération et maintenance >Nginx >Comment Nginx implémente la configuration du contrôle du cache pour les requêtes HTTP
Comment Nginx implémente la configuration du contrôle du cache des requêtes HTTP
Nginx, en tant que serveur Web hautes performances et serveur proxy inverse, dispose de puissantes fonctions de gestion et de contrôle du cache et peut réaliser le contrôle du cache des requêtes HTTP via la configuration. Cet article présentera en détail comment Nginx implémente la configuration du contrôle de cache pour les requêtes HTTP et fournira des exemples de code spécifiques.
1. Présentation de la configuration du cache Nginx
La configuration du cache Nginx est principalement implémentée via le module proxy_cache. Ce module fournit une multitude d'instructions et de paramètres qui peuvent contrôler efficacement le comportement du cache. Avant de configurer le cache, vous devez charger le module proxy_cache dans le fichier de configuration Nginx. L'instruction spécifique est :
load_module modules/ngx_http_proxy_module.so;
Cette instruction chargera le module proxy_cache Nginx afin que nous puissions utiliser les instructions de contrôle de cache pertinentes dans le fichier de configuration.
2. Explication détaillée des instructions de contrôle du cache
La directive proxy_cache_path est utilisée pour définir le chemin du cache et les paramètres de configuration associés, tels que le chemin de stockage du cache, la taille du cache, la stratégie du cache, etc. L'utilisation spécifique est la suivante :
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
Dans cet exemple, nous définissons une zone de cache nommée my_cache, le chemin du cache est /data/nginx/cache, la taille maximale du cache est de 10 Go et le délai d'expiration du cache est de 60 minutes. Il convient de noter que les paramètres de configuration doivent être ajustés en fonction des besoins réels. La directive
proxy_cache est utilisée pour activer la mise en cache et définir la zone de cache utilisée, qui peut être configurée dans le bloc d'emplacement, par exemple :
location / { proxy_cache my_cache; proxy_cache_valid 200 304 5m; proxy_cache_valid 301 302 1h; proxy_cache_key $host$uri$is_args$args; proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; proxy_cache_background_update on; proxy_cache_lock on; proxy_cache_lock_timeout 5s; proxy_cache_revalidate on; proxy_cache_min_uses 3; proxy_cache_bypass $http_x_token; proxy_cache_methods GET HEAD; }
Dans la configuration ci-dessus, nous avons activé la zone de cache nommée my_cache, et La durée de validité du cache, la clé de cache, la stratégie de mise à jour du cache et d'autres paramètres des différents codes d'état de réponse sont définis. Ces paramètres peuvent être configurés de manière flexible en fonction des exigences spécifiques de mise en cache. La directive
proxy_ignore_headers est utilisée pour spécifier les en-têtes de réponse HTTP que Nginx doit ignorer lors de la mise en cache, par exemple :
proxy_ignore_headers Cache-Control Set-Cookie;
Dans cet exemple, nous demandons à Nginx d'ignorer les réponses Cache-Control et Set-Cookie lors de la mise en cache de l'en-tête. pour garantir la cohérence et la validité du cache. La directive
proxy_cache_lock est utilisée pour contrôler l'accès simultané au contenu du cache, ce qui peut efficacement éviter les pannes de cache, les avalanches et d'autres problèmes, tels que :
proxy_cache_lock on; proxy_cache_lock_timeout 5s;
Dans cet exemple, nous activons le verrouillage du cache et définissons un 5 Un délai d'attente en secondes après lequel les requêtes continueront d'accéder au serveur backend pour mettre à jour le contenu mis en cache.
3. Exemple de code
Sur la base des instructions de contrôle de cache ci-dessus, nous pouvons écrire un exemple de configuration Nginx complet pour implémenter le contrôle de cache des requêtes HTTP. Voici un exemple simple de configuration Nginx :
load_module modules/ngx_http_proxy_module.so; http { proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; server { listen 80; server_name example.com; location / { proxy_pass http://backend_server; proxy_cache my_cache; proxy_cache_valid 200 304 5m; proxy_cache_valid 301 302 1h; proxy_cache_key $host$uri$is_args$args; proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; proxy_cache_background_update on; proxy_cache_lock on; proxy_cache_lock_timeout 5s; proxy_cache_revalidate on; proxy_cache_min_uses 3; proxy_cache_bypass $http_x_token; proxy_cache_methods GET HEAD; proxy_ignore_headers Cache-Control Set-Cookie; } } }
Dans l'exemple ci-dessus, nous avons d'abord chargé le module ngx_http_proxy_module, puis défini une zone de cache nommée my_cache, configuré un emplacement proxy dans le bloc serveur et activé la mise en cache et les instructions de contrôle de cache correspondantes. . Lorsqu'un utilisateur accède à example.com, Nginx effectuera la gestion et le contrôle du cache en fonction des règles de cache configurées.
IV.Résumé
Grâce à l'introduction et aux exemples ci-dessus, nous avons une compréhension détaillée de la façon dont Nginx implémente la configuration du contrôle de cache pour les requêtes HTTP, ainsi qu'une explication détaillée et une démonstration des instructions pertinentes fournies par le module proxy_cache. Une configuration raisonnable du cache peut améliorer considérablement la vitesse d'accès et les performances du site Web, réduire la pression sur le serveur principal et offrir une meilleure expérience utilisateur. Par conséquent, dans le développement réel d’applications Web, il est très important d’utiliser correctement la fonction de contrôle du cache de Nginx.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!