Proxy_cache with variable
    Jugurtha 
    nginx-forum at forum.nginx.org
       
    Thu Sep 15 08:42:06 UTC 2016
    
    
  
Hello dream team,
I have problem when i use "proxy_cache" with a variable ! Using
"proxy_cache_purge" (call to proxy_cache) directive with a variable seems to
change that variable's value.
Tested on the last version nginx/1.11.4 (on Sles11 SP3) 
I would change my name cache dynamically
The following conf is OK :  (the file is purged) 
########################################################################
server {
   .....
	       location ~ /purge(/.*) {
                allow              127.0.0.1;
                deny               all;
                
		set $cacheSelect carto;
                #echo  "Zone:$cacheSelect";    //Display carto
                proxy_cache_purge $cacheSelect $host$1$is_args$args;  
//Return code 200 => File purged from the cache
        }
...
}
########################################################################
But if i use "map" or "if" for change the cache variable, the problem
appears :
For example this URL : test.com/purge/librairies/test.js  => I make sure the
file exists in the cache before
########################################################################
map $uri $select_cache {
         default 'carto';
         ~*/tuiles/ 'tuiles';
         ~*/librairies/ 'librairies';
}
server {
   .....
	       location ~ /purge(/.*) {
                allow              127.0.0.1;
                deny               all;
                
                set $cacheSelect carto;  //carto is the default value
                if ($uri ~ /librairies/(.*)$ ) {
                        set $cacheSelect librairies;
                }
                
                 echo  "Zone:$cacheSelect";   //Display  librairies
                 echo  "Zone:$select_cache";   //Display  librairies
                
                #proxy_cache_purge $select_cache $host$1$is_args$args;  ==>
Return 404 (file not found in cache)
                proxy_cache_purge $cacheSelect $host$1$is_args$args;  ==>
Return 404 (file not found in cache)
        }
...
}
########################################################################
I feel that when I use "if" or "map" in my conf it does not work anymore
Thank you for your help
Posted at Nginx Forum: https://forum.nginx.org/read.php?2,269590,269590#msg-269590
    
    
More information about the nginx
mailing list