upstream prematurely closed connection (но как-то странно)
Смотрю error.log nginx: 2018/12/11 16:38:51 [error] 2893#2893: *45224 upstream prematurely closed connection while reading response header from upstream, client: 66.249.76.90, server: www.babai.ru, request: "GET /articles/prezhde-chem-prinesti-svinyu-domoj.html?amp=yes HTTP/1.1", upstream: "http://127.0.0.1:8080/articles/prezhde-chem-prinesti-svinyu-domoj.html?amp=yes";, host: "www.babai.ru" Однако в это же время в access.log apache: 66.249.76.90 - - [11/Dec/2018:16:38:51 +0300] 0 "GET /articles/prezhde-chem-prinesti-svinyu-domoj.html?amp=yes HTTP/1.1" 200 45443 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" Код 200 И в это же время в access.log nginx: 66.249.76.90 - - [11/Dec/2018:16:38:51 +0300] "GET /articles/prezhde-chem-prinesti-svinyu-domoj.html?amp=yes HTTP/1.1" 200 12664 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" Тоже код 200 Откуда тогда ошибка то ? Крайне редко встречается и только с amp страницами. И в сёчконсоли раз в 3-4 месяца появляется ошибка что какая то страница amp недоступна. Потом ошибка исчезает. Кто виноват ? Почему так ? И надо ли что-то с этим делать ? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,282352,282352#msg-282352 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: upstream prematurely closed connection (но как-то странно)
On Tue, Dec 11, 2018 at 02:54:29PM -0500, suffix wrote: > Смотрю error.log nginx: > > 2018/12/11 16:38:51 [error] 2893#2893: *45224 upstream prematurely closed > connection while reading response header from upstream, client: > 66.249.76.90, server: www.babai.ru, request: "GET > /articles/prezhde-chem-prinesti-svinyu-domoj.html?amp=yes HTTP/1.1", > upstream: > "http://127.0.0.1:8080/articles/prezhde-chem-prinesti-svinyu-domoj.html?amp=yes";, > host: "www.babai.ru" > > Однако в это же время в access.log apache: > > 66.249.76.90 - - [11/Dec/2018:16:38:51 +0300] 0 "GET > /articles/prezhde-chem-prinesti-svinyu-domoj.html?amp=yes HTTP/1.1" 200 > 45443 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) > AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile > Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" > > Код 200 > > И в это же время в access.log nginx: > > 66.249.76.90 - - [11/Dec/2018:16:38:51 +0300] "GET > /articles/prezhde-chem-prinesti-svinyu-domoj.html?amp=yes HTTP/1.1" 200 > 12664 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) > AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile > Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" > > Тоже код 200 > > Откуда тогда ошибка то ? В лог-формате "combined" после статус-кода (200) идёт body_bytes_sent. Видно, что апач отдал nginx-у 45443 байта, а ngnix клиенту 12664, так что обоснованное подозрение на то, что nginx недополучил данные. В HTTP/1.1 есть механизм контроля целостности данных, и nginx может видеть, что ему прислали ответ короче, чем должно быть по его заголовку. Я бы прежде всего подумал, нет ли между апачем и nginx-ом statefull файрвола, который из-за какой-то ошибки в своей логике иногда обрывает коннекции, например, содержащие этот "amp". -- Eugene Berdnikov ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: upstream prematurely closed connection (но как-то странно)
Evgeniy Berdnikov Wrote: --- > Видно, что апач отдал nginx-у 45443 байта, а ngnix клиенту 12664, так > что > обоснованное подозрение на то, что nginx недополучил данные. > В HTTP/1.1 есть механизм контроля целостности данных, и nginx может > видеть, > что ему прислали ответ короче, чем должно быть по его заголовку. > Прошу прощения - наверное туплю - а разница в размере не может быть из включенных в nginx всяких там brotli и gzip ? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,282352,282356#msg-282356 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: upstream prematurely closed connection (но как-то странно)
Hello! On Tue, Dec 11, 2018 at 02:54:29PM -0500, suffix wrote: > Смотрю error.log nginx: > > 2018/12/11 16:38:51 [error] 2893#2893: *45224 upstream prematurely closed > connection while reading response header from upstream, client: > 66.249.76.90, server: www.babai.ru, request: "GET > /articles/prezhde-chem-prinesti-svinyu-domoj.html?amp=yes HTTP/1.1", > upstream: > "http://127.0.0.1:8080/articles/prezhde-chem-prinesti-svinyu-domoj.html?amp=yes";, > host: "www.babai.ru" > > Однако в это же время в access.log apache: > > 66.249.76.90 - - [11/Dec/2018:16:38:51 +0300] 0 "GET > /articles/prezhde-chem-prinesti-svinyu-domoj.html?amp=yes HTTP/1.1" 200 > 45443 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) > AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile > Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" > > Код 200 > > И в это же время в access.log nginx: > > 66.249.76.90 - - [11/Dec/2018:16:38:51 +0300] "GET > /articles/prezhde-chem-prinesti-svinyu-domoj.html?amp=yes HTTP/1.1" 200 > 12664 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) > AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile > Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" > > Тоже код 200 > > Откуда тогда ошибка то ? Скорее всего, ошибка - от первой попытки отправить запрос на бэкенд. Вторая, видимо, была успешной. Залоггируйте переменные $upstream_addr и $upstream_status, там будут подробности. -- Maxim Dounin http://mdounin.ru/ ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru