Maxim Dounin Wrote: ------------------------------------------------------- > Hello! > > On Mon, Dec 30, 2019 at 03:22:01AM -0500, yanda.a wrote: > > > Добрался до конфигурации, скину почти полную конфигурацию: > > [...] > > Смысла в "почти полной" конфигурации не очень много. Нужна > конфигурация, с которой воспроизводится то, на что вы жалуетесь. > > Попробуйте воспроизвести проблемное поведение в песочнице, с > использованием минимальной конфигурации. Скорее всего в процессе > станет понятно, в чём именно проблема. > > -- > Maxim Dounin > http://mdounin.ru/ > _______________________________________________ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru
Думаю, что смысла в конфигурации в принципе нет, если я все понял верно. Дело в том, что на текущей конфигурации мне никак не удалось воспроизвести это поведение в тестовом окружении. От безысходности пришлось включить дебаг и искать сообщения из логов в исходниках. Например, вот что есть в логах: 2020/01/13 02:28:13 [info] 17855#17855: *29319057 client prematurely closed connection while sending to client, client: 176.59.97.91 .... 2020/01/13 02:28:13 [debug] 17855#17855: *29319057 http finalize request: 499, "/api/epg?from=1578862800&to=1578949199" a:1, c:1 И вот как это выглядит в логах: request_time: 1.6400000000000001 bytes_sent: 0 status: 499 upstream_addr: ['backend-01-1'] upstream_status: [200] upstream_response_time: [1.225] То есть, мы получили ответ от бекенда, но не смогли по какой-то причине отдать клиенту (это уже другая история). Но, соединение с бекендом мы уже закрыли! А теперь смотрим исходники: if (!u->cacheable && u->peer.connection) { ngx_log_error(NGX_LOG_INFO, ev->log, err, "client prematurely closed connection, " "so upstream connection is closed too"); ngx_http_upstream_finalize_request(r, u, NGX_HTTP_CLIENT_CLOSED_REQUEST); return; } ngx_log_error(NGX_LOG_INFO, ev->log, err, "client prematurely closed connection"); if (u->peer.connection == NULL) { ngx_http_upstream_finalize_request(r, u, NGX_HTTP_CLIENT_CLOSED_REQUEST); } У нас peer.connection == NULL, так как мы уже получили ответ и закрыли соединение с бекендом. К сожалению, запросы с лагающим бекендом пока не удалось отловить в логах. Но, надеюсь они появятся в обозримом будущем и удастся что-то найти. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,286606,286711#msg-286711 _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru