GNU/Linux >> Tutoriels Linux >  >> Linux

nginx en tant que proxy de cache ne mettant rien en cache

Assurez-vous que votre backend ne renvoie pas Set-Cookie entête. Si Nginx le voit, il désactive la mise en cache.

Si tel est votre cas, la meilleure option est de réparer votre backend. Lorsque la réparation du backend n'est pas une option, il est possible de demander à Nginx d'ignorer Set-Cookie en-tête

proxy_ignore_headers "Set-Cookie";
proxy_hide_header "Set-Cookie";

Voir la documentation

proxy_ignore_header s'assurera que la mise en cache a lieu. proxy_hide_header s'assurera que la charge utile du cookie n'est pas incluse dans la charge utile mise en cache. Ceci est important pour éviter les fuites de cookies via le cache NGINX.


Je voudrais ajouter que plusieurs options de configuration et combinaisons peuvent désactiver la mise en cache proxy dans Nginx. Malheureusement, cela est mal documenté.

Dans ma configuration, j'ai mis proxy_buffering on et il a activé la mise en cache comme prévu.


après avoir parcouru plusieurs réponses et commentaires, j'ai trouvé que cette configuration fonctionnait enfin :

10m =10mb cache de clé, max_size à 2GB , inactive=120m (rafraîchissement depuis la source après 120 minutes d'inactivité), use_temp_path=off (pour réduire io)

proxy_cache_valid - état du cache de 200 et 302 pendant 60 minutes

proxy_cache_path /tmp/cache levels=1:2 keys_zone=default_cache:10m max_size=2g
                 inactive=120m use_temp_path=off;
proxy_cache_key "$scheme$request_method$host$request_uri";
proxy_cache_valid 200 302 60m;

server {
    listen       80;
    server_name  example.com;

    # https://www.nginx.com/blog/nginx-caching-guide
    location / {
        proxy_cache default_cache;
        proxy_buffering on;
        proxy_ignore_headers Expires;
        proxy_ignore_headers X-Accel-Expires;
        proxy_ignore_headers Cache-Control;
        proxy_ignore_headers Set-Cookie;

        proxy_hide_header X-Accel-Expires;
        proxy_hide_header Expires;
        proxy_hide_header Cache-Control;
        proxy_hide_header Pragma;

        add_header X-Proxy-Cache $upstream_cache_status;
        proxy_pass http://ip-of-host:80;

        #set            $memcached_key "$uri?$args";
        #memcached_pass 127.0.0.1:11211;
        # error_page     404 502 504 = @fallback;
    }
}

Linux
  1. Améliorer la mise en cache de la base de données MySQL

  2. Comment configurer un proxy inverse Nginx

  3. Proxy inverse avec Nginx :un guide de configuration étape par étape

  4. Linux :modpost ne construit rien

  5. Mise en cache/préchargement des fichiers sous Linux dans la RAM

Comment configurer le proxy inverse Nginx

NGINX en tant que proxy inverse pour l'application Node ou Angular

Comment installer le cache de vernis sur CentOS 7

Comment configurer le cache Nginx sur un serveur LAMP

Comment configurer le cache Nginx sur le serveur LEMP

Comment activer la mise en cache FastCGI côté serveur avec Nginx et PHP