web-dev-qa-db-fra.com

Nginx inverse proxy désactiver le cache

j'utilise Nginx comme proxy inverse pour connecter une API. Le problème est que lorsque j'envoie une requête après ajouter ou supprimer quelque chose. Nginx Envoyez-moi la vieille valeur JSON. J'ai essayé de cache handicapé mais ça ne marche pas.

ma configuration NGinx:

location  / {

  sendfile off;
  add_header Last-Modified $date_gmt;
  add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
  if_modified_since off;
  expires off;
  etag off;
  proxy_no_cache 1;
  proxy_cache_bypass 1;

  proxy_pass http://127.0.0.1:5000;
  proxy_set_header Host $http_Host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header HTTPS   $https;
}

j'ai essayé la requête sans Nginx et tout fonctionne bien dans la console

merci!

4
Kévin Gaulin

Selon la documentation proxy_cache Vous devez remplacer

proxy_no_cache 1;
proxy_cache_bypass 1;

proxy_no_cache et proxy_cache_bypass Définit les conditions dans lesquelles la réponse ne sera pas enregistrée dans un cache.

Puis pour désactiver le cache, vous pouvez remplacer ces deux conditions avec

proxy_cache éteint;

Ici, un exemple complet que vous pouvez utiliser pour configurer un proxy pour un serveur API apathique

location /myapi {

        # Proxy 
        proxy_set_header                X-Localhost true;
        proxy_set_header                X-Real-IP $remote_addr;
        proxy_set_header                X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass                      http://localhost:8080/myapi;

        proxy_redirect                  off;
        proxy_buffers                   32 16k;
        proxy_busy_buffers_size         64k;
        proxy_cache                     off;


        # Headers for client browser NOCACHE + CORS Origin filter 
        add_header 'Cache-Control' 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
        expires off;
        add_header    'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
        add_header    'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept' always;

        allow all;
    }
3
bdzzaid