Welcome! Log In Create A New Profile

Advanced

Re: proxy_cache only if custom header is set by upstream

Maxim Dounin
May 15, 2012 11:52AM
Hello!

On Tue, May 15, 2012 at 11:42:12AM -0400, ThomasLohner wrote:

> Hi,
>
> i know how to *prevent* caching if custom headers are set by upstream
> with proxy_cache_bypass and proxy_no_cache.
>
> This time i'd like to do the opposite, i want the response to be cached
> *only* if a custom header is present.
>
> I tried something like:
>
> set $nocache 1;
>
> proxy_no_cache $nocache;
>
> ...
>
> if ($upstream_http_myheader = 1) {
>
> set $nocache 0;
>
> }
>
> But this doesn't work.

And it's not expected to, as "if" directives, as well as other
rewrite module directives, are executed before request goes to
upstream and hence $upstream_http_myheader isn't known.

> Any ideas or am i missing something?

Use map instead, http://nginx.org/r/map.

Something like this should work:

map $upstream_http_myheader $nocache {
default 0;
1 1;
}

proxy_no_cache $nocache;

Maxim Dounin

_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

proxy_cache only if custom header is set by upstream

ThomasLohner May 15, 2012 11:42AM

Re: proxy_cache only if custom header is set by upstream

Maxim Dounin May 15, 2012 11:52AM

Re: proxy_cache only if custom header is set by upstream

Valentin V. Bartenev May 15, 2012 12:00PM

Re: proxy_cache only if custom header is set by upstream

ThomasLohner May 15, 2012 12:24PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 174
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready