Re: Nginx возвращает 499 при проксировании после нескольких часов работы
Maxim Dounin
mdounin at mdounin.ru
Tue Jul 1 00:01:00 UTC 2014
Hello!
On Mon, Jun 30, 2014 at 01:27:39PM +0400, Andrey Ilyin wrote:
> Всем добрый день!
>
> Столкнулся с довольно странной проблемой на боевом сервере.
>
> Через ~4-6 часов работы nginx перестает проксировать запросы на второй
> сервер и возвращает статус 499.
>
> При этом все запросы, которые проксируются на этом же сервере на
> Apache отрабатывают нормально.
>
> После reload или restart все возвращается в нормальное русло.
>
> Проблема появилась после того как переехали на новый сервер и обновили
> nginx с версии 1.4 до 1.7.1.
>
> В debug log'e
> http run request
> http upstream check client, write event:0
> epoll_wait() reported that client prematurely closed connection, so upstream connection is closed too while connecting to upstream
>
>
> Подскажите, пожалуйста, возможно кто-то уже сталкивался с данной
> проблемой, как можно это решить?
Код 499 означает, что клиент устал ждать и закрыл соединение.
Вероятнее всего из-за того, что от "второго" сервера долго не
приходит ответ.
> Сервер работает под ОС Linux 3.2.0-4-amd64 #1 SMP Debian 3.2.57-3+deb7u2 x86_64 GNU/Linux
> nginx version: nginx/1.7.1
>
> Включенные модули nginx'a можно посмотреть тут
> https://www.dropbox.com/s/uotxbtyks0xb15j/nginx-modules.txt
>
> Дебаг логи
> https://www.dropbox.com/s/avjetz8wcrx6fdy/filtered_bad_renamed.log
Судя по логу, не устанавливается соединение с бекендом:
2014/06/30 06:39:20 [debug] 24188#0: *13861 connect to 123.123.123.123:80, fd:41 #13864
2014/06/30 06:39:20 [debug] 24188#0: *13861 http upstream connect: -2
2014/06/30 06:39:20 [debug] 24188#0: *13861 posix_memalign: 00000000023F01B0:128 @16
2014/06/30 06:39:20 [debug] 24188#0: *13861 event timer add: 41: 90000:1404110450952
И, судя по тому, что таймер на установление соединения выставлен в
90 секунд, с этой проблемой уже один раз пытались бороться - но,
видимо, симптоматически.
Смотрите, что у вас происходит на бекенде, он скорее всего
банально перегружен и не справляется с нагрузкой.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru