Maison  >  Article  >  développement back-end  >  Interprétation des paramètres de configuration du cache proxy nginx

Interprétation des paramètres de configuration du cache proxy nginx

小云云
小云云original
2018-01-03 15:44:092042parcourir

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.

proxy_cache

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_moduleproxy_cache_validIl n'y a pas de valeur par défaut, par exemple proxy_cache_valid 200 302 10m;http, serveur, emplacementDé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 codesngx_http_proxy_moduleproxy_cache_keyproxy_cache_key $ Scheme$proxy_host$request_uri;http, server, locationDéfinit une clé pour la mise en cacheDé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_moduleproxy_cache_path 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;httpDé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_moduleproxy_cache_bypassAucune valeur par défauthttp, server, locationDé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_moduleproxy_cache_min_usesproxy_cache_min_uses 1;http, serveur, emplacementDé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, emplacementDé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_moduleAprè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 a ngx_http_proxy_module instances uniquement depuis 1.1.12
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.
.
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

doc
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;
        }
    }
}

    ngx_http_proxy_module
  • configuration du cache proxy inverse nginx
  • Comprendre la directive nginx proxy_cache_path
  • Recommandé connexe :

Tutoriel de configuration de nginx React sur la page statique

Comment choisir entre Apache et Nginx

nginx et node Déployer les étapes de la méthode https dans Alibaba Cloud

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn