2016-08-01 19 views
0

ich Nginx Proxy-Anfragen an den Server basierend auf Verzeichnis Benutzer zugreifen möchtenPrevent Nginx von Caching NodeJS Antworten

server { 
listen 80 default_server; 
listen [::]:80 default_server ipv6only=on; 


server_name localhost; 

location/{ 

    proxy_pass http://****.***/; 

} 
location /app/{ 
    proxy_no_cache '1'; 
    proxy_cache_bypass '1'; 

    proxy_buffering off; 

    include proxy_params; 
    proxy_pass http://localhost:3000/; 

} 
} 

Dies ist nginx Konfiguration verwende. Ein Knoten App auf 3000 Port läuft Problem ich bin vor ist

  • Benutzer Zugriff "/ app"
  • Server sendet login.html von Knoten App.
  • Benutzeranmeldungen von der Seite.
  • Node sendet home.html nach erfolgreichem Login. (Problem liegt hier) Obwohl Node sendet home.html aber Nginx reagiert auf Anfrage mit 304 Code und Browser zeigt die gleiche Login-Seite wieder.

Beispiel Knoten App

..... 
app.get("/",function(req,res){ 
***Sends login page or home page based on session*** 
}); 
app.get("/processLogin",function(req,res){ 
***redirects to/after setting session**** 
}); 
..... 
+0

Was sind URLs von Login und Homepages? –

+0

Ich sehe keine Caching-Richtlinien hier –

+0

Homepage ist res.sendfile ("home.html") Login-Seite ist res.sendfile ("Login.html") –

Antwort

2

Im Proxy-Modus nginx wird mit Expires Kopflast auf dem Back-End-Server zu reduzieren ...

So setzen einfach expires off; in dem Proxy-Standort Block und Caching sollte weg sein.


Falls das Caching im Browser stattfindet, werden Sie den Cache-Steuerkopf No-Cache festlegen müssen:

add_header Cache-Control no-cache;

+0

funktioniert immer noch nicht. –

+0

Dann liefert nginx wirklich die 304 ... oder ist das etwas, das vom Browser kommt? –

0

no-cache-Header in NodeJS Hinzufügen geholfen zu lösen das Problem.