Merging equivalent cache keys?
António P. P. Almeida
appa at perusio.net
Sat May 18 13:45:12 UTC 2013
Using the embedded Lua module you can add the three IDs as integers and
reduce it to a single number.
That way you'll get a single number by virtue if the commutativity of real
number addition. AFAIK there
are no arithmetic operators available on the Nginx config language.
----appa
On Sat, May 18, 2013 at 2:52 PM, roysmith649 <nginx-forum at nginx.us> wrote:
> We've got a route which is used to retrieve multiple objects in parallel.
> The client does a GET on /api/1/station/multi?id=123&id=456&id=789. We
> cache these in our nginx config:
>
> location ~ /api/[^/]+/station/multi {
> proxy_pass http://localhost:8000;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header Host $host;
> proxy_set_header X-Forwarded-Host $host;
> proxy_set_header X-Forwarded-Server $host;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>
> proxy_cache api;
> proxy_cache_use_stale updating;
> }
>
> The problem is, clients present the ids in random order. For example, one
> client might ask for id=1&id=2, and another ask for id=2&id=1. Both should
> return exactly the same response, but map to different cache keys. For two
> ids, it's not that bad, but many of the calls are for large numbers of ids
> and the combinatorics quickly spin out of control.
>
> Is there any way to rewrite the keys in nginx to canonicalize them?
> Sorting
> all the ids in numerical order would do it.
>
> Posted at Nginx Forum:
> http://forum.nginx.org/read.php?2,239315,239315#msg-239315
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20130518/946e5128/attachment.html>
More information about the nginx
mailing list