<div dir="ltr">I agree. The directive name and format are always the diffcult parts.<img src="cid:330@goomoji.gmail" style="margin: 0px 0.2ex; vertical-align: middle;" goomoji="330"> I thought we could add a new parameter to the proxy_next_upstream directive. The individual directive is OK for me.<div>
<br></div><div> Limit the retry total time is great. It could eliminate some very long timeout responses.</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/4/6 Maxim Dounin <span dir="ltr"><<a href="mailto:mdounin@mdounin.ru" target="_blank">mdounin@mdounin.ru</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello!<br>
<div class="im"><br>
On Fri, Apr 05, 2013 at 09:59:29PM +0800, Weibin Yao wrote:<br>
<br>
> We have the similar request. If we have dozens of servers in a same<br>
> upstream block, I don't want to retry all of them. One side effect is it<br>
> will increase the failure count with all of the backend servers. After<br>
> several times, all of the servers will be marked down for a while and all<br>
> of the requests will be replied with 502.<br>
><br>
> We also need the retry mechnism and don't want to diable it. I think if<br>
> there is a configurable tries time with the direcitve proxy_next_upstream,<br>
> it will be very nice.<br>
<br>
</div>This is somewhere in TODO, and likely will be implemented soon.<br>
As usual, the most serious problem is a name for the directive<br>
(proxy_next_tries?).  :)<br>
<br>
Additional similar proposal discussed here includes limiting total<br>
time spent in retries before giving up (proxy_next_time?).  This<br>
will allow to try many servers as soon as they, e.g., return RST<br>
quickly, but to only try one or two servers if they fail to answer<br>
in configured proxy_connect_timeout/proxy_read_timeout.<br>
<div class="HOEnZb"><div class="h5"><br>
><br>
><br>
> 2013/4/5 Maxim Dounin <<a href="mailto:mdounin@mdounin.ru">mdounin@mdounin.ru</a>><br>
><br>
> > Hello!<br>
> ><br>
> > On Fri, Apr 05, 2013 at 04:38:36AM -0400, philipp wrote:<br>
> ><br>
> > > Is it possible to limit the amount of upstreams asked? I have four<br>
> > upstreams<br>
> > > defined and it makes no sense to ask all of them. If two of them timeout<br>
> > or<br>
> > > error there is possible something wrong with the request and asking<br>
> > another<br>
> > > node doesn't help.<br>
> ><br>
> > No, as of now only switching off proxy_next_upstream completely is<br>
> > available.<br>
> ><br>
> > On the other hand, with switched of proxy_next_upstream you may<br>
> > still configure retries to additional (or other) upstream servers<br>
> > via error_page directive, using a configuration similar to last<br>
> > example at <a href="http://nginx.org/r/error_page" target="_blank">http://nginx.org/r/error_page</a>.<br>
> ><br>
> > Something like this should generate no more than two requests<br>
> > regardless of number of upstream servers configured:<br>
> ><br>
> >     location / {<br>
> >         error_page 502 504 = @fallback;<br>
> >         proxy_pass <a href="http://backend" target="_blank">http://backend</a>;<br>
> >         proxy_next_upstream off;<br>
> >     }<br>
> ><br>
> >     location @fallback {<br>
> >         proxy_pass <a href="http://backend" target="_blank">http://backend</a>;<br>
> >         proxy_next_upstream off;<br>
> >     }<br>
> ><br>
> > --<br>
> > Maxim Dounin<br>
> > <a href="http://nginx.org/en/donation.html" target="_blank">http://nginx.org/en/donation.html</a><br>
> ><br>
> > _______________________________________________<br>
> > nginx mailing list<br>
> > <a href="mailto:nginx@nginx.org">nginx@nginx.org</a><br>
> > <a href="http://mailman.nginx.org/mailman/listinfo/nginx" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
> ><br>
><br>
><br>
><br>
> --<br>
> Weibin Yao<br>
> Developer @ Server Platform Team of Taobao<br>
<br>
> _______________________________________________<br>
> nginx mailing list<br>
> <a href="mailto:nginx@nginx.org">nginx@nginx.org</a><br>
> <a href="http://mailman.nginx.org/mailman/listinfo/nginx" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
<br>
<br>
--<br>
Maxim Dounin<br>
<a href="http://nginx.org/en/donation.html" target="_blank">http://nginx.org/en/donation.html</a><br>
<br>
_______________________________________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Weibin Yao<br>Developer @ Server Platform Team of Taobao
</div>