On Mon, Oct 27, 2014 at 03:27:03PM +0800, Gu Feng wrote: > # HG changeset patch > # User Gu Feng <flygo...@126.com> > # Date 1414394704 -28800 > # Mon Oct 27 15:25:04 2014 +0800 > # Node ID a7d62f0f3000d156477f556e5cb307f229fe6301 > # Parent 973fded4f461f3a397779b3a1dc80881b1b34974 > Upstream: limited next_upstream time and tries when resolving DNS. > > When got multiple upstream IP addresses using DNS resolving, the number of > upstreams tries and the maxinum time spent for these tries were not affected. > This patch fixed it. > > diff -r 973fded4f461 -r a7d62f0f3000 src/http/ngx_http_upstream.c > --- a/src/http/ngx_http_upstream.c Wed Oct 15 22:57:23 2014 +0400 > +++ b/src/http/ngx_http_upstream.c Mon Oct 27 15:25:04 2014 +0800 > @@ -613,6 +613,14 @@ ngx_http_upstream_init_request(ngx_http_ > return; > } > > + u->peer.start_time = ngx_current_msec; > + > + if (u->conf->next_upstream_tries > + && u->peer.tries > u->conf->next_upstream_tries) > + { > + u->peer.tries = u->conf->next_upstream_tries; > + } > + > ngx_http_upstream_connect(r, u); > > return;
This part of the patch shouldn't be necessary - it's for the case when upstream is defined using variables but defines a single IP literal. > @@ -974,6 +982,14 @@ ngx_http_upstream_resolve_handler(ngx_re > ngx_resolve_name_done(ctx); > ur->ctx = NULL; > > + u->peer.start_time = ngx_current_msec; > + > + if (u->conf->next_upstream_tries > + && u->peer.tries > u->conf->next_upstream_tries) > + { > + u->peer.tries = u->conf->next_upstream_tries; > + } > + > ngx_http_upstream_connect(r, u); > > failed: _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel