Hello! On Thu, Oct 08, 2020 at 03:31:57AM -0400, tored wrote:
> Thanks Maxim to taking the time to respond. > > > This feature wasn't removed in 5e6142609e48, but rather it was > > changed how things work: instead of doing a full scan over all > > connections on each event loop iteration, nginx now does it only > > once, and also makes sure no new idle connections are added after > > the shutdown signal. > > > > I don't fully understand what happens to non-idle keep-alive connections > after the shutdown signal is sent. > > If I understand correctly, non-idle keep-alive connections will continue to > serve requests after a graceful shutdown, until they are terminated by > "normal" events, such as: > * connection is closed/terminated by the client > * or by the server, e.g if (r->connection->requests >= > clcf->keepalive_requests) > * or if keepalive_timeout is meet > * any other event that would close the connection during normal operation No. Connections won't be allowed to go into the keepalive state after a graceful shutdown was initiated, see the following check in the ngx_http_finalize_connection() function: if (!ngx_terminate && !ngx_exiting && r->keepalive && clcf->keepalive_timeout > 0) { ngx_http_set_keepalive(r); return; } That is, additional requests will be only processed on a connection if keepalive is enabled and nginx worker is not shutting down. If nginx worker is shutting down, the connection will be closed. -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx