1 message in ru.sysoev.nginxmemcached configuration issue
FromSent OnAttachments
Tom ChurchillNov 10, 2008 9:19 pm 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:memcached configuration issueActions...
From:Tom Churchill (to@earthscape.com)
Date:Nov 10, 2008 9:19:29 pm
List:ru.sysoev.nginx

I hope you will forgive my asking for help on what I assume is a fairly obvious error of some sort -- but it's one I'm afraid I can't figure out.

Basically, we have a cherrypy back end server that will resolve layer names to IP address, handling requests of the form:

/resolve?layer=test

or

/resolve?layer=es_layer_23

The back end server sets a memcache key/value pair so that the next time around, nginx can avoid the "@cache_miss" proxy pass.

For the most part, all works well -- if I request the name of a key in the memcached, ("test", for example) -- it gets returned. Likewise, if I request a key NOT in memcached, the request gets sent to my server.

However, there are a couple of classes of layers that can be handled generically: ANY layer starting with "es_" or "api_" will go to the same host: So no need to clutter memcached, right? Just convert the key so that it is identical for all such requests...

When I attempt to do so using the code fragment below, however, I get what I believe is unusual behavior -- requests for anything starting with "es_" or "api_" return nothing -- no HTTP headers, no nothing.

Any thoughts on why?

Thanks,

--Tom

location /resolve { default_type text/html;

set $memcached_key "api:/resolve?$args"; if ($args ~ "layer=es_") { set $memcached_key "api:/resolve?layer=es_"; } if ($args ~ "layer=api_") { set $memcached_key "api:/resolve?layer=api_"; } memcached_pass localhost:11211; error_page 404 = @cache_miss; }