Мое приложение генерирует некоторые данные изображений на лету и отправляет их обратно в браузер с send_data some_huge_blob, :type => 'image/png'
. Это работает достаточно хорошо в режиме разработки, но в производстве с nginx / passenger в миксе кажется, что иногда пассажир просто падает. Вот отладочный вывод в моем журнале nginx
[ pid=596 thr=140172782794496 file=ext/common/ApplicationPool/Pool.h:1162 time=2011-07-25 23:15:14.965 ]: Exception occurred while connecting to checked out process 1428: Cannot connect to Unix socket '/tmp/passenger.1.0.589/generation-0/backends/ruby.kJRjXYuZteKoogZIufN8a2cDPdpbIlYmIr1hh3G9UV7GhKDB4pqZ5y0jR': Connection refused (111)
[ pid=596 thr=140172782794496 file=ext/common/ApplicationPool/Pool.h:685 time=2011-07-25 23:15:14.965 ]: Detaching process 1428
[ pid=596 thr=140172782794496 file=ext/common/ApplicationPool/../Process.h:138 time=2011-07-25 23:15:14.969 ]: Application process 1428 (0x2676ee0): destroyed.
[ pid=1405 thr=70178806733240 file=abstract_request_handler.rb:466 time=2011-07-25 23:15:14.982 ]: Accepting new request on main socket
2011/07/25 23:15:16 [error] 642#0: *96 upstream prematurely closed connection while reading response header from upstream, client: 173.8.216.57, server: app.somedomain.com, request: "GET /projects/4e2dee4c106a821bf2000008/revisions/1/assets/Layout2.psd/preview HTTP/1.1", upstream: "passenger:unix:/passenger_helper_server:", host: "app.somedomain.com"
Обратите внимание, что в моем файле production.log
нет ничего, что указывало бы на то, что запрос поступил даже в приложение!
Есть идеи? Или идеи относительно того, как отладить это дальше? Бит connection refused
интересен ...
Что бы это ни стоило, это образ Ubuntu на микроэкземпляре в AWS.