<div dir="ltr"><div class="gmail_quote">On Thu, Mar 31, 2016 at 6:54 PM, Frank Liu <span dir="ltr"><<a href="mailto:gfrankliu@gmail.com" target="_blank">gfrankliu@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Given this config:<div>proxy_next_upstream timeout;</div><div>proxy_next_upstream_timeout 50;</div><div>proxy_connect_timeout 10;</div><div>proxy_read_timeout 100;</div><div>If upstream has issues causing connect timeout, nginx will re-try 5 upstream servers until hitting 50, then fail.</div></div></blockquote><div> <a href="http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream_timeout">http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream_timeout</a></div><div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">'[...] hitting 50s [...]' (cf. <a href="http://nginx.org/en/docs/syntax.html">http://nginx.org/en/docs/syntax.html</a>)​</div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>If one upstream has issues causing read timeout, nginx will keep wait to read, until 100, then timeout,</div></div></blockquote><div><a href="http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_read_timeout">http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_read_timeout</a> </div><div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153);display:inline">​nginx will wait for a maximum of 100s between two successful read operations (or before the first one) and will fail if exceeded.<br>​</div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>then checks the proxy_next_upstream_timeout which is 50 and already passed, so nginx won't retry next upstream.</div><div><br></div><div>I am trying to setup nginx to only retry on connect timeout, not read timeout, will above work?</div></div></blockquote><div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153);display:inline">​<a href="http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream">http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream</a><br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153);display:inline">The 'timeout' property regroups conneciton timeout and header read timeout​.<br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153);display:inline">Content read timeout is set by <a href="http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_read_timeout">proxy_read_timeout</a> (default 60s)<br clear="all"><div><div class="gmail_signature"><font size="1"><span style="color:rgb(102,102,102)">---<br></span><b><span style="color:rgb(102,102,102)">B. R.</span></b><span style="color:rgb(102,102,102)"></span></font></div></div>
</div></div></div></div>