Welcome! Log In Create A New Profile

Advanced

Re: Nginx prematurely closing connections when reloaded

Sébastien Rebecchi
March 26, 2024 08:42AM
Hi Igor

There is no special logs on the IP_1 (the reloaded one) side, only 1 log
line, which is expected:
--- BEGIN ---
2024/03/26 13:37:55 [notice] 3928855#0: signal process started
--- END ---

I did not configure worker_shutdown_timeout, it is unlimited.

Sébastien.

Le lun. 25 mars 2024 à 17:59, Igor Ippolitov <iippolitov@nginx.com> a
écrit :

> Sébastien,
>
> Nginx should keep active connections open and wait for a request to
> complete before closing.
> A reload starts a new set of workers while old workers wait for old
> connections to shut down.
> The only exception I'm aware of is having worker_shutdown_timeout
> configured: in this case a worker will wait till this timeout and forcibly
> close a connection. Be default there is no timeout.
>
> It would be curious to see error log of nginx at IP_1 (the reloaded one)
> while the reload happens. It may explain the reason for connection resets..
>
> Kind regards,
> Igor.
>
> On 25/03/2024 12:31, Sébastien Rebecchi wrote:
>
> Hello
>
>
> I have an issue with nginx closing prematurely connections when reload is
> performed.
>
>
> I have some nginx servers configured to proxy_pass requests to an
> upstream group. This group itself is composed of several servers which are
> nginx themselves, and is configured to use keepalive connections.
>
> When I trigger a reload (-s reload) on an nginx of one of the servers
> which is target of the upstream, I see in error logs of all servers in
> front that connection was reset by the nginx which was reloaded.
>
>
> Here configuration of upstream group (IPs are hidden replaced by IP_X):
>
> --- BEGIN ---
>
> upstream data_api {
>
> random;
>
>
> server IP_1:80 max_fails=3 fail_timeout=30s;
>
> server IP_2:80 max_fails=3 fail_timeout=30s;
>
> server IP_3:80 max_fails=3 fail_timeout=30s;
>
> server IP_4:80 max_fails=3 fail_timeout=30s;
>
> server IP_5:80 max_fails=3 fail_timeout=30s;
>
> server IP_6:80 max_fails=3 fail_timeout=30s;
>
> server IP_7:80 max_fails=3 fail_timeout=30s;
>
> server IP_8:80 max_fails=3 fail_timeout=30s;
>
> server IP_9:80 max_fails=3 fail_timeout=30s;
>
> server IP_10:80 max_fails=3 fail_timeout=30s;
>
>
> keepalive 20;
>
> }
>
> --- END ---
>
>
> Here configuration of the location using this upstream:
>
> --- BEGIN ---
>
> location / {
>
> proxy_pass http://data_api;
>
>
> proxy_http_version 1.1;
>
> proxy_set_header Connection "";
>
>
> proxy_set_header Host $host;
>
> proxy_set_header X-Real-IP $real_ip;
>
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>
>
> proxy_connect_timeout 2s;
>
> proxy_send_timeout 6s;
>
> proxy_read_timeout 10s;
>
>
> proxy_next_upstream error timeout http_502 http_504;
>
> }
>
> --- END ---
>
>
> And here the kind of error messages I get when I reload nginx of "IP_1":
>
> --- BEGIN ---
>
> 2024/03/25 11:24:25 [error] 3758170#0: *1795895162 recv() failed (104:
> Connection reset by peer) while reading response header from upstream,
> client: CLIENT_IP_HIDDEN, server: SERVER_HIDDEN, request: "POST
> /REQUEST_LOCATION_HIDDEN HTTP/2.0", upstream: "
> http://IP_1:80/REQUEST_LOCATION_HIDDEN", host: "HOST_HIDDEN", referrer:
> "REFERRER_HIDDEN"
>
> --- END ---
>
>
> I thought -s reload was doing graceful shutdown of connections. Is it due
> to the fact that nginx can not handle that when using keepalive
> connections? Is it a bug?
>
> I am using nginx 1.24.0 everywhere, no particular
>
>
> Thank you for any help.
>
>
> Sébastien
>
> _______________________________________________
> nginx mailing listnginx@nginx.orghttps://mailman.nginx.org/mailman/listinfo/nginx
>
>
>
_______________________________________________
nginx mailing list
nginx@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

Nginx prematurely closing connections when reloaded

Sébastien Rebecchi March 25, 2024 08:34AM

Re: Nginx prematurely closing connections when reloaded

Craig Hoover March 25, 2024 12:34PM

Re: Nginx prematurely closing connections when reloaded

Craig Hoover March 25, 2024 12:36PM

Re: Nginx prematurely closing connections when reloaded

Igor Ippolitov March 25, 2024 01:00PM

Re: Nginx prematurely closing connections when reloaded

Sébastien Rebecchi March 26, 2024 08:42AM

Re: Nginx prematurely closing connections when reloaded

Igor Ippolitov March 28, 2024 11:42AM

Re: Nginx prematurely closing connections when reloaded

Sébastien Rebecchi March 28, 2024 02:30PM

Re: Nginx prematurely closing connections when reloaded

Igor Ippolitov March 28, 2024 07:06PM

Re: Nginx prematurely closing connections when reloaded

Sébastien Rebecchi March 29, 2024 04:42AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 282
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready