Mercurial > hg > nginx-quic
diff src/stream/ngx_stream_proxy_module.c @ 6863:54cf51c4f07a
Stream: speed up TCP peer recovery.
Previously, an unavailable peer was considered recovered after a successful
proxy session to this peer. Until then, only a single client connection per
fail_timeout was allowed to be proxied to the peer.
Since stream sessions can be long, it may take indefinite time for a peer to
recover, limiting the ability of the peer to receive new connections.
Now, a peer is considered recovered after a successful TCP connection is
established to it. Balancers are notified of this event via the notify()
callback.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Mon, 26 Dec 2016 14:27:05 +0300 |
parents | 906ac20234ed |
children | ee3645078759 |
line wrap: on
line diff
--- a/src/stream/ngx_stream_proxy_module.c +++ b/src/stream/ngx_stream_proxy_module.c @@ -808,6 +808,11 @@ ngx_stream_proxy_init_upstream(ngx_strea u->state->connect_time = ngx_current_msec - u->state->response_time; + if (u->peer.notify) { + u->peer.notify(&u->peer, u->peer.data, + NGX_STREAM_UPSTREAM_NOTIFY_CONNECT); + } + c->log->action = "proxying connection"; if (u->upstream_buf.start == NULL) {