"35.172.217.40 - 35.172.217.40"

Какой из них является лучшим вариантом для использования вместе с приложением "последние рельсы"? Монгрель, Тонкий, WEBrick и пассажир

Я играл и оценивал другие варианты сервера WEBrick по умолчанию для rails, и Thin был самым безболезненным и чистым, который работал очень хорошо.

какой из этих монгольских, тонких, WEBrick и пассажиров вы порекомендуете и почему...? есть ли какие-либо возможности для масштабируемости (дружественные к кластеру или конфигурации, которые могут обрабатывать какой-то масштаб), которые поставляются с любым из этих серверов.. или если масштабируемость даже является параметром при их оценке?

+8
источник поделиться
3 ответа

Дипак уже ответил на половину вашего вопроса, но позвольте мне немного рассказать о вещах. (Я являюсь одним из авторов Pusion Passenger.)

  • WEBrick - это игровой веб-сервер. Никто не использует его ни в чем, кроме разработки, потому что он плохо работает и, как говорят, теряет память.
  • Ты сказал, что Тон хорошо работает. Вы уже настроили его в конфигурации с обратным прокси-сервером? Потому что это то, что люди делают в производственных сценариях. Небезопасно выставлять Тонкий (или Монгрель, или Единорог) непосредственно в Интернет.
  • Вам может быть интересно прочитать Параметры сервера Ruby on Rails и обзор архитектуры Phusion Passenger для более подробных объяснений.

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

Есть некоторые тонкости, о которых нужно знать.

  • Phusion Passenger предоставляет функцию, называемую глобальной очередью. Он решает определенную проблему, подробно объясняется в руководстве. По умолчанию запросы прокси-серверов Nginx и Apache циклически обрабатываются, поэтому они страдают от этой проблемы, в то время как Phusion Passenger этого не делает. Есть способы обойти это, если вы не используете Phusion Passenger, но они требуют определенной конфигурации или установки дополнительных модулей веб-сервера.
  • Модель ввода-вывода может быть или не быть важной в зависимости от характера вашего приложения. Mongrel, Thin, Unicorn, все они многопроцессорные однопоточные. Это отлично подходит для традиционных веб-приложений, которые ищут материал в локальной базе данных и что-то делают, но в значительной степени отягощают приложения, которые выполняют множество вызовов HTTP API или иным образом вынуждены много ждать от ввода-вывода. Почему Rails 4 Live Streaming - это большая сделка подробно объясняет это.

    Phusion Passenger также является многопроцессорным однопоточным, но Phusion Passenger Enterprise поддерживает многопоточность. Phusion Passenger Enterprise - это коммерческий вариант Phusion Passenger с открытым исходным кодом с множеством функций, полезных для крупномасштабных производственных сред.

  • В больших производственных средах некоторые функции становятся важными, например. перезагрузка, не показывающая ничего плохого при неудачном развертывании и т.д. Mongrel, Thin, Unicorn, Phusion Passenger, все они в какой-то степени раскрывают эти функции, но некоторые требуют больше усилий администратора, чем другие. Например, чтобы реализовать перезапуск в Mongrel и Thin, вам нужно довольно много шагов в сценариях развертывания. Единорог не требует столько шагов, но все же значительно. Именно здесь сияет компания Phusion Passenger Enterprise: она использует все эти функции и превращает их в один вариант конфигурации. Включите эту опцию, и программное обеспечение позаботится об остальном.

Итак, выберите любой вариант, который, по вашему мнению, лучше всего подходит для вашего сценария.

+9
источник

Проще всего настроить для производства, вероятно, будет Apache и mod_rails (пассажир). Если вы хотите использовать новую горячность, вы можете дать nginx и пассажир вихрем.

Для разработки mongrel обычно проще всего работать. Большинство Windows IDE (RadRails, Netbeans) дают вам возможность использовать Webrick или Mongrel для разработки и позволяют управлять серверами из самой IDE.

Обновление

Четыре варианта

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

nginx + Mongrel nginx + пассажир Apache + Mongrel Apache + пассажир (Существует автономный режим Phusion Passenger Standalone, но это действительно скомпилированный nginx + пассажир, поэтому я не считаю его, хотя это может быть хорошим вариантом для некоторых людей.)

Более крупный сайт может затем добавить специализированное оборудование уровня 7 (NetScaler, F5,...) перед серверами.

+1
источник

Тонкий так же просто, как драгоценный камень "тонкий" для разработки и производства

0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос