Maison >développement back-end >tutoriel php >Interprétation des paramètres de configuration du cache proxy nginx
Cet article analyse principalement les paramètres de configuration liés au cache dans nginx ngx_http_proxy_module. J'espère qu'il sera utile à tout le monde.
Nom | Configuration par défaut | Portée | Description officielle | Chinois interprétation | Module |
---|---|---|---|---|---|
proxy_cache | proxy_cache désactivé; | http, serveur, localisation | Définit une zone de mémoire partagée utilisée pour la mise en cache. La même zone peut être utilisée à plusieurs endroits. La valeur du paramètre peut contenir des variables (1.7.9) Le paramètre off désactive la mise en cache héritée du niveau de configuration précédent. | Définissez s'il faut activer la mise en cache des réponses du backend. Si elle est activée, la valeur du paramètre est le nom de la zone, tel que proxy_cache mycachengx_http_proxy_module | |
. | Il n'y a pas de valeur par défaut, par exemple proxy_cache_valid 200 302 10m;http, serveur, emplacement | Définit le temps de mise en cache pour différents codes de réponse. | Défini pour différents codes de réponse Définissez différentes heures de cache Si vous ne définissez pas le code, la valeur par défaut est 200, 301, 302. Vous pouvez également utiliser any pour spécifier tous les codes | ngx_http_proxy_module | |
proxy_cache_key $ Scheme$proxy_host$request_uri; | http, server, location | Définit une clé pour la mise en cache | Définir la clé pour la mise en cache , la valeur par défaut est équivalente à proxy_cache_key $scheme$proxy_host$ uri$is_args$args; | ngx_http_proxy_module | |
n'a pas de valeur par défaut, instance proxy_cache_path /var/cachelevels=1:2 keys_zone=imgcache :100m inactive=2h max_size=1g; | http | Définit le chemin et d'autres paramètres d'un cache. Les données du cache sont stockées. dans les fichiers. Le nom du fichier dans un cache est le résultat de l'application de la fonction MD5 à la clé du cache. Le paramètre niveaux définit les niveaux hiérarchiques d'un cache : de 1 à 3, chaque niveau accepte les valeurs 1 ou 2. | Spécifie le chemin d'accès au stockage en cache, et le nom du fichier est md5 de la valeur de la clé de cache, puis pour les répertoires à plusieurs niveaux, ils sont générés en fonction du paramètre de niveau, tel que niveaux=1:2:3. le nom du répertoire prend la dernière valeur de la valeur md5 et le deuxième nom du répertoire prend les deuxième et troisième valeurs de la valeur md5, le troisième nom du répertoire prend les 4ème, 5ème et 6ème valeurs de la valeur md5. ; le paramètre key_zone est utilisé pour spécifier le nom et la taille de la mémoire des métadonnées mises en cache dans la mémoire partagée, comme keys_zone=imgcache:100m, toutes les recherches dans le cache recherchent d'abord les métadonnées ici, et si elles correspondent, accédez au système de fichiers pour trouver le cache correspondant ; inactive est utilisé pour spécifier l'heure à laquelle le cache n'est pas supprimé par délai d'attente, la valeur par défaut est de 10 minutes, vous pouvez également le spécifier vous-même, par exemple max_size est utilisé pour spécifier le cache Le maximum ; valeur, dépasser cette valeur supprimera automatiquement le cache le moins récemment utilisé | ngx_http_proxy_module | |
Aucune valeur par défaut | http, server, location | Définit les conditions dans lesquelles la réponse ne sera pas extraite d'un cache. Si au moins une valeur des paramètres de chaîne n'est pas vide et n'est pas égale à « 0 » alors la réponse ne sera pas extraite. du cache. | Spécifiez quelles réponses ne seront pas mises en cache si certaines valeurs ne sont pas vides ou ne sont pas 0, comme proxy_cache_bypass $http_pragma $http_authorization; | ngx_http_proxy_module | |
proxy_cache_min_uses 1; | http, serveur, emplacement | Définit le nombre de requêtes après lequel la réponse sera mise en cache . | Spécifiez le nombre de requêtes pour mettre en cache le contenu de la réponse après 🎜>http, serveur, emplacement | Détermine dans quels cas une réponse obsolète mise en cache peut être utilisée lors de la communication avec le serveur proxy. Les paramètres de la directive correspondent aux paramètres de. la directive proxy_next_upstream. Le serveur backend peut utiliser des caches expirés lors du renvoi de codes d'état, tels que proxy_cache_use_stale error timeout invalid_header http_500 http_502 http_503 http_504; | ngx_http_proxy_module |
proxy_cache_lock | proxy_cache_lock off; | http, serveur, emplacement | Lorsque cette option est activée, une seule requête à la fois sera autorisée à remplir un nouveau cache élément identifié selon la directive proxy_cache_key en transmettant une requête à un serveur proxy. Les autres requêtes du même élément de cache attendront soit qu'une réponse apparaisse dans le cache, soit que le verrou du cache soit libéré, jusqu'à l'heure fixée. par la directive proxy_cache_lock_timeout. | Il n'est pas activé par défaut. S'il est activé, une seule requête peut mettre à jour le même cache à la fois. Les autres requêtes attendront que le cache contienne des données ou attendront le. le verrou doit être libéré dans un délai ; nginx 1.1.12 a seulement commencé à l'avoir | ngx_http_proxy_module |
proxy_cache_lock_timeout | proxy_cache_lock_timeout 5s; | http, serveur, emplacement | Définit un délai d'attente pour proxy_cache_lock Lorsque le délai expire, la demande sera transmise au serveur mandaté, cependant, la réponse ne sera pas mise en cache | Après avoir attendu l'expiration du verrouillage du cache, le backend sera demandé directement et le résultat ne sera pas mis en cache. nginx Il y angx_http_proxy_module |
http { # we set this to be on the same filesystem as proxy_cache_path proxy_temp_path /usr/local/nginx/proxy_temp; # good security practice dictates that this directory is owned by the # same user as the user directive (under which the workers run) proxy_cache_path /usr/local/nginx/proxy_temp keys_zone=CACHE:10m levels=1:2 inactive=6h max_size=1g; server { location / { # using include to bring in a file with commonly-used settings include proxy.conf; # referencing the shared memory zone defined above proxy_cache CACHE; proxy_cache_valid any 1d; proxy_cache_bypass $http_pragma $http_authorization; proxy_cache_min_uses 3; proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504; proxy_pass http://upstream; } } }
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!