2009-05-11 9 views
13

Я прочитал из некоторых книг, что Phusion Passenger является ответом на простое развертывание Ruby on Rails. Но мой друг сказал, что сначала был Apache + куча монголов, а затем lighttpd, а затем nginx, а теперь и пассажир, и кажется бесконечным ...- это mod_rails или Phusion Passenger, наконец, ответ на Ruby on Rails Deployment?

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

Так что мне интересно, является ли Пассажир окончательным ответом на развертывание RoR? вы используете его и использовали команду «ab», чтобы проверить, хорошо ли работает сайт?

+0

На Dreamhost ваш друг может столкнуться с потолком для каждого пользователя, а не с проблемой пассажира. См. Http://stackoverflow.com/questions/824783/rails-app-randomly-crashes-with-error-premature-end-of-script-headers –

ответ

20

короткий ответ: да.

длинный ответ: yeeeeeeeeeeeeeeesssssssssssssssss.

По всей серьезности, Phusion Passenger и Ruby Enterprise Edition полностью избавили от необходимости переместить приложение Rails в производство. Предыдущие подходы, в том числе запуск набора Mongrels, требовали много настроек, связанных с запуском, остановкой и повторным использованием процессов прослушивания, которые Passenger обрабатывает прозрачно или с помощью простых параметров конфигурации Apache (или nginx). И дополнительный сборщик мусора REE означает, что отключение нового слушателя использует MUCH меньше памяти и быстрее загружается (в режиме «умного» нереста «Пассажира»).

Редактировать: @srboisvert делает очень хорошую точку; Пассажир не является окончательным ответом на развертывание RoR, но пока это мой любимый. Однажды, после решения многих трудных инженерных проблем, основной поток Ruby, вероятно, переместится с хостинга RoR с использованием модели нескольких процессов в модель с одним процессом, что сделает управление еще проще, чем с помощью Passenger.

+1

+1 для долгого ответа: yeeeeeeeeeeeeesssssssssssssssssss. Я рассмеялся и все еще смеюсь. –

3

Да, это самое простое, быстрое и эффективное решение. После того, как в последних выпусках были решены многие проблемы с драгоценными камнями, такими как soap4r и т. Д., Теперь Passenger является ответом на вопросы о развертывании.

Мы используем Apache/mod_rails в сбалансированной среде с HAProxy перед двумя серверами. Это намного надежнее нашей предыдущей настройки с использованием Mongrel/Aapache.

Это очень легко взять контроль над

  • количество пассажирских процессов работает в Apache
  • количество пассажирских процессов запуска каждого приложения
  • и все это без боли настройки ряда конфигурационные файлы, такие как mod_proxy, Apache.
  • настройка виртуального хоста и добавление 3 строки в Apache конфигурации достаточно в основном, чтобы получить это работает

Matt

3

окончательный ответ? Ничто не является окончательным ответом.

Я бы сказал, что пассажир - это текущий ответ.

+2

ничто не является окончательным ответом, если вы не играете в игру «кто хочет стать миллионером». –

4

Это лучшее решение. Я начал развертывание с FCGI, и это было больно. Потом пришел дворняжка, и было лучше. Затем пришел mod_rails, и это было лучше.

Кроме того, большое количество приложений с большим крутым приложением переносится на mod_rails, в том числе на 37signals, поэтому вы знаете, что это хорошо.

Я просто закончить цитатой из DHH:

Цельный решение с Phusion Пассажира

После того, как вы завершили невероятно простую установку, вы получите Apache который действует как веб-сервер, загружает балансировщик , сервер приложений и наблюдатель процесса. Вы просто заходите в приложение и прикоснитесь к tmp/restart.txt, если хотите, Откажитесь от него и пропустите, и вы заработали .

Но почему-то сообщение Пассажира было немного медленно тонуть в. Там уже тонны больших сайтов убегал его. В том числе Shopify, MTV, Geni, Yammer, и мы будем перемещать через первый Ta-da Список в ближайшее время, затем надеюсь, что остальные 37signals Suite быстро после этого.

Таким образом, хотя все еще есть причины для запустить свои собственные настройки пользовательского многоуровневой вручную настроенные части, просто как есть люди уклоняется от mod_php для их сведений, я думаю мы, наконец, остановились на по умолчанию ответ. Что-то, что не требует , вы действительно думаете о первом развертывании вашего приложения Rails. Что-то, что только работает из окна . Даже если это поле является общим хостом!

В заключение, Rails больше не является жестким для развертывания. Phusion Passenger сделал это смешно легко.

(via)

1

Я думаю, что теперь люди будут придерживаться mod_rails в течение многих лет. Модуль действительно хорош. Конфигурация мертва проста. Трудно будет заменить его лучшим решением. Подобно mod_php. Единственный ключевой компонент, который отсутствует: порт Windows.

2

Да. Я запускал Nginx/Passenger перед Apache для того, что все еще нуждается в PHP, так как они выпустили 2.2.0 несколько недель назад. Особенно с Ruby Enterprise Edition, он подходит к тому, что я бы назвал «идеальным».

1

В некоторых ситуациях (предприятие и т. Д.) JVM также может быть хорошим вариантом.