我正在使用Nginx根据用户想要访问的目录来代理服务器的请求
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/;
}
}
这是nginx配置。 Node应用程序在3000端口上运行 我面临的问题是
Node 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 :(得分:2)
在代理模式下,nginx正在使用doSomeOtherStuf()
标头来减少后端服务器的负载......
因此,只需在代理位置块中设置Expires
,就应该停止缓存。
如果在浏览器中发生缓存,则需要将缓存控制标头设置为no-cache:
expires off;
答案 1 :(得分:0)
在nodejs中添加no-cache标头有助于解决问题。
答案 2 :(得分:0)
一个问题:您是否将pm2用于Node应用程序?许多人使用Nginx + pm2。 对于pm2的开发阶段,您需要在启动应用程序时放置--watch标志。 pm2将所有Node.js加载到内存中,并且不检查硬盘上的文件更改。然后,您将出现缓存现象。
因此,在开发阶段,代替
pm2启动MyApp.js
做
pm2启动MyApp.js --watch
老实说,我看不到浏览器缓存或Nginx如何缓存node.js程序给出的变量响应。就我而言,必须是pm2。