Ошибка Nginx и единорога - истекло время ожидания - PullRequest
2 голосов
/ 27 октября 2011

У меня есть рельсы с nginx и единорогами.Довольно типичная установка, которую вы можете проверить здесь: https://gist.github.com/7e0f9d762cf4d521d3c4

Она работала довольно хорошо, до сегодняшнего дня, когда у меня было много:

тайм-аут в восходящем направлении (110:Время соединения истекло) при чтении заголовка ответа из апстрима, клиент: xxx.xxx.xxx.xxx, сервер

в файле error.log * nginx

После перезагрузки все было в порядке, но яБоюсь, что это может повториться.У кого-нибудь была подобная проблема, или можете сказать, почему это произошло?

Ответы [ 2 ]

0 голосов
/ 08 января 2013

У меня была такая же проблема. И вы можете найти больше информации в файле журнала ошибок единорога и в файле production.log. Тогда вы можете найти, что является реальной проблемой. Возможно, это связано с тем, что файл, который вы обрабатываете, слишком велик, а для unicorn.rb существует параметр тайм-аута, который возникнет в этот момент.

0 голосов
/ 15 ноября 2011

Я слышал о реализациях в Monit и God, которые будут проверять наличие висячих сокетов. Я бы посоветовал вам поискать увеличение времени отклика в потоках, которое будет означать это условие, и когда это произойдет, нужно будет повесить монитор, заставив единорога породить нового работника.

http://www.stopdropandrew.com/2010/06/01/where-unicorns-go-to-die-watching-unicorn-workers-with-monit.html

Другой возможностью является использование thin, что немного лучше для установок вне локальной сети (т. Е. WAN или WWW), потому что это не быстрый клиент, как Unicorn.

...