proxy_cache_key with variables
arut at nginx.com
Mon Jul 6 15:44:20 UTC 2015
> On 06 Jul 2015, at 16:49, sz_g <nginx-forum at nginx.us> wrote:
> I've just created a configuration composed of two servers.
> Both just forwards traffic from different ports (and protocols) to different
> servers, and keep responses in cache. It works nice.
> For both servers "GET /" request is sent, in the response there is proper
> resource. Thus (to distinguish responses in the cache) I added for both
> proxy_cache_key "$upstream_addr*$request”;
At the time when this expression is evaluated, $upstream_addr is still unknown
since no upstream connection is made. Obviously, if a key is found in cache,
there will be no upstream connection at all. So it’s not a good idea to use
$upstream_addr in key definition. Instead, you can use the parts of request
which define the upstream address.
> But it doesn't work. I found that upstream states are not available and thus
> "proxied" address is not known when cache key is computed. And "proxied"
> address is computed only when additional stream must be used..
> Is there any way to get proper key? Or any other way to keep all copies in
> the cache?
> I plan to add "load balancing" module, which would be able to forward
> request on (multiple) source addresses to multiple proxied addresses, with
> caching.. Will it work properly?
> Posted at Nginx Forum: http://forum.nginx.org/read.php?2,260086,260086#msg-260086
> nginx mailing list
> nginx at nginx.org
More information about the nginx