Пассажирский сбой при попытке использовать https - PullRequest
0 голосов
/ 18 апреля 2009

Я использую плагин ssl_requirements в учетной записи общего хостинга. Этот хостинг-провайдер использует Passenger для управления Rails. Все работает нормально, пока я не пытаюсь перейти на страницу, требующую ssl (принудительно добавляется фильтр ssl_required). Когда это происходит, пассажир вылетает и отправляет обратно 500 ошибок. Ошибка гласит:

 Passenger encountered the following error:
 The application spawner server exited unexpectedly: Broken pipe

 Exception class:
 PhusionPassenger::Railz::ApplicationSpawner::Error

Вот базовый сценарий:

  1. Пользователь использует http для просмотра нечувствительных данных.
  2. Пользователь переходит на форму регистрации (где требуется https)
  3. Ssl_requirement видит, что пользователь не использует надлежащий протокол, и перенаправляет его на URL, который использует https.
  4. Пассажир получает этот запрос и пытается создать новое приложение для рельсов.
  5. Когда используется метод spawn_application , он обнаруживает ошибку и вылетает

Проблема в том, что я не знаю, где происходит проблема. Я не думаю, что это может быть проблемой с https, потому что я могу вручную ввести префикс https, и все будет работать нормально. Я считаю, что проблема заключается либо в плагине ssl_requirement, либо в том, как пассажир обрабатывает этот новый запрос https.

Ребята, вы когда-нибудь сталкивались с подобным сценарием? Если да, то не могли бы вы указать некоторые ресурсы, чтобы решить эту проблему?

Спасибо.

Ответы [ 2 ]

1 голос
/ 21 мая 2009

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

Учитывая, что вы используете spawn, возможно, в этом причина - spawn создает совершенно новый процесс Rails.

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

0 голосов
/ 22 апреля 2009

У вас есть доступ к вашей конфигурации виртуального хоста Apache? Если это так, то я бы порекомендовал вам настроить перенаправление с URL-адреса http на URL-адрес https, используя директиву Redirect, а не ssl_requirement. Я сделал это с Пассажиром, и все работает отлично. (Таким образом, нет проблем с обработкой Пассажиром https или ssl. Я предполагаю, что есть некоторая несовместимость между плагином ssl_requirement и Пассажиром.)

...