Map is not matching correctly against upstream custom header
Gabriel Arrais
lists at ruby-forum.com
Thu Jun 2 19:12:58 UTC 2016
Maxim Dounin wrote in post #1183769:
> Hello!
>
> On Thu, Jun 02, 2016 at 07:51:06PM +0200, Gabriel Arrais wrote:
>
>> 1 0;
>> proxy_cache_bypass $no_cache;^M
>> }
>>
>> I've already tried the map with $sent_http_x_my_custom_header,
>> $upstream_http_x_my_custom_header and $http_x_my_custom_header. It's
>> always the same result.
>>
>> obs: I've already tried with if but if is resolved in request time so it
>> didn't work.
>
> The problem is that you are trying to lookup response headers when
> there is no response yet. Both "if" and "proxy_cache_bypass" are
> checked before the request is sent to a backend, and hence they
> can't do anything good.
>
> Additionally, map{} results are always cached, and when you try to
> lookup it again via "proxy_no_cache" it just return a previously
> cached value (the one computed when there were no response yet).
>
> Consider removing "proxy_cache_bypass" from your cofiguration.
> Just
>
> map $upstream_http_x_my_custom_header $no_cache {
> ...
> }
>
> proxy_no_cache $no_cache;
>
> is expected to work fine.
>
> --
> Maxim Dounin
> http://nginx.org/
Hello Maxim!
Thank you very much for the response, I think that I can't remove the
"proxy_cache_bypass" from my configuration because other mecanisms are
using this directive, in other situations..
I will try to use two different variables for proxy_no_cache and
proxy_cache_bypass.
Again, thank you!
--
Posted via http://www.ruby-forum.com/.
More information about the nginx
mailing list