Question about proxy_cache_key

Francis Daly francis at
Thu Feb 16 12:41:04 UTC 2017

On Thu, Feb 16, 2017 at 01:08:35PM +0700, Dewangga Bachrul Alam wrote:

Hi there,

> proxy_cache_key "$uri$is_args$args";
> location / {
>          proxy_ignore_headers Cache-Control Expires Set-Cookie;
>          rewrite (?<capt>.*) $capt?$args&view=$mobile break;
> }

> My question is, the URI
> https://subdomain.domain.tld/artikel/berita/a-pen-by-hair accessed
> from another browser (eg. Safari) and cache status was HIT, then I
> tried to invoke `PURGE` command from shell using cURL, it was failed
> and return cache_key not found

I do not know the "fix"; but I suspect that the *reason* is due to the
Vary header that is sent in the response.

If you know that "Vary" is not relevant in your case, then possibly
temporarily adding it to proxy_ignore_headers will let you see whether
that is related.

> The following argument "&view=desktop?" should be follow. Is there any
> hints to match the proxy_cache_key? So I can purge the cache anywhere
> and anytime?

I guess that the "view=desktop" part comes from your rewrite directive;
it may take more documentation-digging to find the actual cache key that
is used internally in nginx, so that the purge facility can work with it.

(Or possibly the ngx_cache_purge module could be updated to work
transparently with the current nginx cache key behaviour -- I do not
know whether that is possible.)

Good luck with it,

Francis Daly        francis at

More information about the nginx mailing list