我是Nginx的新手,并试图了解NGINX世界中是否有类似的东西是可能的。我们正在考虑在现有的Web应用程序上设置NGINX静态页面缓存,但是我们希望根据某个cookie值来缓存页面。
例如:
如果传入的请求有一个名为XYZ的cookie,值为" 123",那么我们只想缓存该页面,只需说3个小时。如果不是,我们不想缓存它。
NGINX可以实现这样的目标吗?如果是的话,有人可以帮忙吗?
提前致谢。
答案 0 :(得分:2)
是的,这是可能的。它与你想象的有点不同:
首先设置缓存,例如使用proxy_cache
- 指令。
然后使用map
:
map $cookie_XYZ $bypass {
'123' 0;
'default' true;
}
然后您可以使用此值来绕过缓存(对于没有cookie的请求):
location /somelocation {
proxy_cache_bypass $bypass;
...
}