Reputation: 4606
I have uwsgi cache configured, but I want to make it work differently for different locations. My config:
uwsgi_cache_path /tmp/nginx_cache/ levels=1:2 keys_zone=mycache:60m inactive=10m;
server {
listen *:80;
server_name thewebsite.loc;
location @uwsgi {
include uwsgi_params;
uwsgi_cache mycache;
uwsgi_cache_valid any 1h;
uwsgi_cache_key $request_uri;
uwsgi_pass unix:///var/run/app/uwsgi.sock;
uwsgi_read_timeout 120s;
}
location / {
try_files $uri @uwsgi;
}
}
let's say, I want to disable cache for a particular location. I add after block for location /
another location:
location /dynamic{
uwsgi_cache off;
try_files $uri @uwsgi;
}
But it doesn't work and the view still cached. Is it possible or not supposed to work like this at all?
UPD: I've also tried to configure cache in location /
. In this case, it simply doesn't work.
Upvotes: 2
Views: 143
Reputation: 4765
When you access /dynamic
the nginx sets uwsgi_cache off
but then you redirect to @uwsgi
location where you have cache enabled. I think that causes your problem.
Try moving cache config to server
context:
uwsgi_cache_path /tmp/nginx_cache/ levels=1:2 keys_zone=mycache:60m inactive=10m;
server {
listen *:80;
server_name thewebsite.loc;
uwsgi_cache mycache;
uwsgi_cache_valid any 1h;
uwsgi_cache_key $request_uri;
location @uwsgi {
include uwsgi_params;
uwsgi_pass unix:///var/run/app/uwsgi.sock;
uwsgi_read_timeout 120s;
}
location / {
try_files $uri @uwsgi;
}
location /dynamic {
uwsgi_cache off;
try_files $uri @uwsgi;
}
}
CAUTION: I did not test this config, I'm not sure if it will work
Upvotes: 1