Невозможно загрузить в пассажирское приложение beache apache - PullRequest
1 голос
/ 25 мая 2010

Я не могу загрузить файл размером 8,4 МБ в приложении для пассажиров за Apache. Передача того же файла через scp заняла 4,1 минуты.

Ошибка возврата:

[pid = 10222 file = ext / apache2 / Hooks.cpp: 727 time = 2010-05-18 07: 13: 14.842]: Неожиданная ошибка в mod_passenger: ошибка при получении Загрузка данных HTTP: сброс соединения по пиру (104) Backtrace: в 'boost :: shared_ptr Hooks :: receiveRequestBody (request_rec *, const char *) '(Hooks.cpp: 1084) в 'int Hooks :: handleRequest (request_rec *)' (Hooks.cpp: 459)

ПРИМЕЧАНИЕ: пользователь не отменил или что-то еще. Он был на Firefox: -)

другие ошибки, замеченные в журналах:

  1. [pid = 16593 file = ext / apache2 / Hooks.cpp: 727 time = 2010-05-23 23: 06: 12.156]: Неожиданная ошибка в mod_passenger: похоже, что браузер не сделал закончите загрузку файла: он сказал, что загрузит 6610086 \ байт, но он закрыл соединение после отправки 610155 байт. Пользователь, вероятно, нажал Стоп в браузере или его интернете \ т соединение застопорился. Backtrace: в 'boost :: shared_ptr Hooks :: receiveRequestBody (request_rec *, const char *) '(Hooks.cpp: 1084) в 'int Hooks :: handleRequest (request_rec *)' (Hooks.cpp: 459)

    ПРИМЕЧАНИЕ: пользователь не отменил или что-нибудь. Он был на IE6: -)

  2. [pid = 28995 file = ext / apache2 / Hooks.cpp: 727 time = 2010-05-17 00: 40: 18.697]: Неожиданная ошибка в mod_passenger: не удалось отправить данные Сервер ApplicationPool: сбой записи (): Сломанный канал (32) Backtrace: в 'виртуальный импульс :: shared_ptr Passenger :: ApplicationPoolServer :: Client :: get (const Passe \ nger :: PoolOptions &) '(ApplicationPoolServer.h: 402) в 'int Hooks :: handleRequest (request_rec *)' (Hooks.cpp: 523)

вопросы:

  1. почему файл не загружается?
  2. рекомендации по загрузке файлов в apache для повышения пропускной способности и производительности.
  3. могу ли я обработать загрузку вне apache, а затем передать ее пассажир
  4. тоже пробовал mod_porter, http://modporter.com, не похоже помочь.
  5. есть ли режим отладки в пассажире - подробное ведение журнала

PS: использование RubyOnRails, развернутого с mod_rails на apache, http://www.modrails.com/, с ruby ​​Enterprise Edition. TimeOut установлен в 1200 в apache virtalhost.

* * Тысяча сорок-девять касается,
Дипак

Ответы [ 2 ]

1 голос
/ 30 июня 2010

К сожалению, это, вероятно, ошибка Safari. Смотрите это сообщение об ошибке пассажира:

Невозможно загрузить в пассажирское приложение behing apache

И этот древний отчет об ошибке в вебките:

https://bugs.webkit.org/show_bug.cgi?id=5760

Что указывает на сообщение об ошибке в Apple, которое либо невозможно просмотреть, либо было закрыто. Я только что столкнулся с проблемой Safari 5.0 (6533.16) на 10.6.4 с пассажиром 2.2.14, поэтому проблема явно не решена. Очень расстраивает.

Решение состоит в том, чтобы отключить keepalive для вашего vhost.

0 голосов
/ 25 мая 2010

Что делать, если загрузка 610155 байт занимает 1200 секунд? Это кажется вполне разумным. Передача HTTP, как правило, не так агрессивна, как механизмы, подобные scp, и может привести к гораздо большему перетаскиванию, поскольку HTTP не особенно эффективен при загрузке.

Вы можете попытаться открыть тайм-аут, если это напрямую влияет на ситуацию, или помнить, что некоторые клиенты могут быть подключены через брандмауэр, который по какой-либо причине ограничивает соединения максимальным промежутком времени, часто около десять минут.

Можете ли вы повторить проблему из соединения с аналогичной скоростью? Или на файл большего размера?

...