Nginx | fastcgi_cache_valid dynamic based on request

c0nw0nk nginx-forum at forum.nginx.org
Fri Aug 26 15:01:05 UTC 2016


So I have been trying to make the fastcgi_cache_valid value based on user
request.

if ($request_uri ~ "/url1" ) {
set $cachetime "any 5s";
}
if ($request_uri ~ "/url2" ) {
set $cachetime "any 5m";
}

These did not work because it turns out your not allowed to have a dynamic
variable within the fastcgi_cach_valid command.
fastcgi_cache_valid $cachetime;

fastcgi_cache_valid "$cachetime";

They give of this error.
invalid time value "$cachetime"



So instead of the above i tried this instead.

if ($request_uri ~ "/url1" ) {
set $cachetime "5";
}
if ($request_uri ~ "/url2" ) {
set $cachetime "300";
}
add_header "X-Accel-Expires" $cachetime;

fastcgi_cache_valid any 60s;

But on url1 i get X-Cache: HIT when it should of expired after 5 seconds.


Is what i am trying to achieve even possible ? From my understand the
X-Accel-Expires might just be for proxy_cache requests.

Posted at Nginx Forum: https://forum.nginx.org/read.php?2,269212,269212#msg-269212



More information about the nginx mailing list