является ли mod_rails или Phusion Passenger окончательно ответом на развертывание Ruby on Rails? - PullRequest
13 голосов
/ 11 мая 2009

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

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

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

Ответы [ 7 ]

20 голосов
/ 11 мая 2009

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

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

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

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

4 голосов
/ 12 мая 2009

Это лучшее решение на сегодняшний день. Я начал развертывание с FCGI, и это была боль. Потом пришла дворняга и стало лучше. Тогда прибыл mod_rails, и это было ПУТЬ лучше.

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

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

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

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

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

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

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

( 1020 * с помощью *) * * тысяча двадцать-один

3 голосов
/ 11 мая 2009

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

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

3 голосов
/ 11 мая 2009

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

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

Очень легко взять под контроль

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

Мэтт

2 голосов
/ 12 мая 2009

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

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

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

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

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

...