клиент преждевременно закрыл соединение при отправке клиенту, в nginx - PullRequest
28 голосов
/ 26 января 2011

У меня ошибка в nginx error.log:

2010/12/05 17:11:49 [info] 7736#0: *1108 client closed prematurely connection while sending to client, 
client: 188.72.80.201, server:***.biz, request: "GET /forum/ HTTP/1.1", 
upstream:"http://***:3000/forum/", host: "***.biz"

У меня есть 500 кодов ответов на сайте каждый раз. Как я могу это исправить?

Спасибо.

Ответы [ 7 ]

16 голосов
/ 19 декабря 2012

Настройка [proxy_ignore_client_abort on;][1] может помочь вам.

12 голосов
/ 13 апреля 2015

Сегодня я долгие часы сам решал эту проблему и нашел решение:
Обратите внимание, что это исправление влияет только на вас при использовании балансировщиков нагрузки

Проверьте время простоя балансировщика нагрузки. Время ожидания простоя ELB было установлено равным 60 секундам (по умолчанию), и, поскольку запрос зависал, соединение закрывалось по истечении заданного времени. Но поскольку ELB предшествует nginx, nginx регистрирует, что «клиент» (в данном случае ELB) закрывает соединение.

Итак, если вы используете ELB, перейдите по адресу:
EC2 -> Балансировщики нагрузки -> Выберите правильный -> прокрутите вниз в описании и измените время ожидания простоя , если вы используете другие балансировщики нагрузки, проверьте их конфигурацию и время ожидания.

Также имейте в виду, что вам все еще может потребоваться изменить тайм-ауты прокси и т. Д.

7 голосов
/ 17 февраля 2011

Я обнаружил, что при отключении прокси-буфера помогает

http {
   proxy_buffering off;
...
}

Возможно, буферы слишком малы или меньше. После изменения размеров буфера все работает хорошо

proxy_buffering on;
proxy_buffer_size 8k;
proxy_buffers 2048 8k;
2 голосов
/ 13 февраля 2013

У меня была такая же проблема, и я исследовал ее.В моем случае это происходит только с браузерами Webkit (Chrome).Они открывают соединения оптимистически больше соединений, чем требуется, если вы загружаете только один ресурс.В таком случае избыточное соединение закрывается некорректно или, по крайней мере, без отправки по нему HTTP-глагола.Это приводит к упомянутой ошибке в nginx.

Относительно ответа № 1: Помощь не из предложенных решений, что логично, поскольку это не имеет никакого отношения к проксированию.на; не помогает в моем тесте.

К сожалению, я не нашел другого решения, кроме как использовать

error_log off;

1 голос
/ 17 января 2014

У меня была такая же проблема, я обнаружил, что nginx закрывает соединение из-за настройки send_timeout.Я увеличил и это исправлено.

http
{
send_timeout 20;
...
}
0 голосов
/ 12 августа 2014

fastcgi_ignore_client_abort on определенно решит проблему.

0 голосов
/ 20 августа 2013

Я начал видеть это сообщение при изменении error_log с warn на debug.Возврат решил проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...