regex - fastcgi_cache_key exclude some args in request uri -


my fastcgi_cache_key is:

fastcgi_cache_key "$host$request_method$request_uri"; 

my $request_uri has timestamp , signature in it:

 /abc/xyz?product_id=10529125896&shop_id=17224077&shop=abc.com&path_prefix=%2fa%2fcomment&timestamp=1503044416&signature=882102c51c7b7bd4c5d8521a6565fc70c27b908547316f1123eb4af13b19f2da  

so, cache miss (because has different timestamp , signature). question is:

i want create new var , use var fastcgi_cache_key. var has this:

myvar

/abc/xyz?product_id=10529125896&shop_id=17224077&shop=abc.com 

fastcgi_cache_key this:

fastcgi_cache_key "$host$request_method$myvar"; 

how can ? much.

there 2 ways it.

if ($request_uri ~ "([^\?]*)\?(.*)timestamp=([^&]*)&?(.*)") {   set $args $2$4; } fastcgi_cache_key "$host$request_method$args"; 

this remove timestamp. can either modify pattern ignore 1 more field or can use twice remove field $args.

next option use openresty or nginx lua allows execute lua script in code. if conditions not considered good. having lua increases software requirement


Comments

Popular posts from this blog

php - Cannot override Laravel Spark authentication with own implementation -

Qt QGraphicsScene is not accessable from QGraphicsView (on Qt 5.6.1) -

What is happening when Matlab is starting a "parallel pool"? -