Hi,<br><br><div class="gmail_quote">On Tue, Mar 20, 2012 at 12:54 AM, rmalayter <span dir="ltr"><<a href="mailto:nginx-forum@nginx.us">nginx-forum@nginx.us</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Has anybody used ngx_http_upstream_consistent_hash with newer nginx<br>
releases (>1.0)?<br>
<br>
If so, is it possible to use ngx_http_upstream_consistent_hash with<br>
HTTP-based back-ends, or does it only work with memcahe backends? The<br>
documentation isn't at all clear.<br>
<br>
We want to load-balance multiple static file servers behind nginx, and<br>
basing the upstream chosen on consistent hash will drastically increase<br>
the filesystem cache hit ratios the back-end servers, while preventing a<br>
"thundering herd" issue when one fails. Basically you get to use all of<br>
your RAM amongst the back ends for cache, rather than having the same<br>
objects in the cache of multiple back end servers.<br>
<br>
I thought of trying to use map directives and regexes to pick a back<br>
end, but handling weighting and failover makes this a complex and<br>
therefore brittle approach. Could consistent hashing for upstreams be<br>
achieved with embedded lua or perl?<br>
<br>
I know HAproxy has consistent hashing features for this use case (as do<br>
almost all commercial load balancers), but I would prefer not adding<br>
layers to my stack if it can be avoided. We're already using nginx and<br>
proxy_cache and it has been rock-solid and stable for us.<br></blockquote><div><br></div><div>Please try this fork: <a href="https://github.com/yaoweibin/ngx_http_consistent_hash">https://github.com/yaoweibin/ngx_http_consistent_hash</a></div>
</div><div>BTW, this module will be officially supported by the Tengine team soon.</div><div><br></div><div>Regards,</div><div><br></div>-- <br>Joshua Zhu<br>Senior Software Engineer<br>Server Platforms Team at Taobao<br>