Идеальный Rails Server - PullRequest
       2

Идеальный Rails Server

7 голосов
/ 15 августа 2010

Какой сервер идеально подходит для рельсов?Предположим, это на VPS, таком как Linode.Предположим, что ни один из сайтов не станет следующим твиттером, но они должны хорошо масштабироваться.Он также должен поддерживать несколько сайтов, и все сайты являются рельсами 3. И база данных должна быть на одном сервере (пока).

Должно ли оно использовать apache или nginx?

Ruby Enterprise Edition илипросто обычный Ruby?

Идеальный дистрибутив linux?

MySQL, PostgreSQL или что-то еще?

Как должны быть размечены каталоги (где размещать ваши rails сайты или что-то еще)?

Варианты развертывания?

Что-нибудь еще?

Ответы [ 2 ]

14 голосов
/ 15 августа 2010

Должен ли он использовать apache или nginx? Кажется, что Nginx является предпочтительным маршрутом, если вам не нужны определенные функции Apache.Если вы используете Passenger, поддерживаются Apache и Nginx.Подробнее о пассажире здесь .

Ruby Enterprise Edition или просто обычный Ruby? Я почти уверен, что REE доступен только для Ruby 1.8, что на самом деле непредпочтительная версия для Rails 3 больше.У Rails 3 были некоторые проблемы с 1.8, но они, возможно, уже исправили их.Однако, как правило, Ruby 1.9.2 хорошо работает с Rails 3.

Идеальный дистрибутив linux? Это действительно не имеет значения.Если вы не уверены, Ubuntu - хороший выбор, так как там много знаний, и его довольно просто использовать.Slicehost имеет кучу отличных статей о том, как начать работу с VPS, и многие из них посвящены именно Ubuntu: http://articles.slicehost.com/.

MySQL, PostgreSQL или что-то еще? Это определенно субъективно,MySQL определенно является наиболее распространенным, и если вы действительно не уверены, это хорошая отправная точка.Однако люди часто утверждают, что PostgreSQL чище и проще в использовании, чем MySQL.Если вы только начинаете, я бы порекомендовал MySQL только из-за большого количества уже существующей информации.

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

Варианты развертывания? Capistrano популярен.Вы просто фиксируете свои изменения и cap deploy, и вы будете в рабочем состоянии.

Что-нибудь еще? Если все это кажется подавляющим, посмотрите на более простое решение, такое как Heroku.Они настроили все для вас, и, хотя вы теряете некоторую гибкость, вам не придется беспокоиться об этом.Их цены не так уж плохи, и они предлагают бесплатный вариант.

3 голосов
/ 15 августа 2010

Я думаю, что Кил суммировала это довольно хорошо.Но я подумал, что дам вам знать, что именно я использовал с бета-версии rails (и теперь с RC).Эта настройка хорошо сработала для меня:

Серверы Rackspace Cloud - Предоставляет вам полный контроль над сервером.Вы можете изменить размеры своих серверов на лету.Вы также можете сделать снимок, если хотите скопировать настройки для другого сайта.Это дешево и, на мой взгляд, лучше, чем облако Amazon.

CentOS 5.4 - твердое тело, но, как упоминал Кил, вероятно, любой дистрибутив будет работать нормально.

Ruby 1.9.2RC 2 - проблем с Rails 3 для меня пока нет.Определенно будет использовать Ruby Enterprise, когда они перенесут его на 1.9.2 (хотя не уверен, что это в работе?)

Nginx - быстрый и легкий.Мне это нравится намного лучше, чем apache.Хорошо работает перед Passenger, mongrel и thin.

MySQL - только личные предпочтения для этого.Я использую это в течение многих лет.Легко настроить главный / подчиненный или главный / главный конфиг, если вам нужно масштабировать.Некоторые люди добиваются успеха, просто используя sqlite, но я предпочитаю что-то более надежное.

Github - обязательное условие для контроля исходного кода.Bundler очень хорошо работает с github

Сервер приложений - я все еще спорю, что с этим делать.Я был доволен Passenger 2.2.15 до тех пор, пока не увидел, сколько времени понадобилось для создания новых процессов ruby ​​для обработки параллелизма.Создание нового процесса для меня занимает до 30 секунд, и приложение заблокировано, поэтому никакие запросы не могут проходить, пока оно порождается.Я сейчас выясняю, загружается ли мое приложение или Rails 3 так долго.Эта проблема исправлена ​​в Passenger 3, хотя.Надеюсь, что скоро выйдет.В результате я, вероятно, собираюсь использовать Thin или Mongrel, пока не выйдет Passenger 3.

Capistrano - отлично работает для Rails 3. Я бы порекомендовал найти некоторые рецепты шапки для управления версиямиваше приложение с тегами git ... или просто напишите свое собственное.

Что-нибудь еще? На самом деле не связано с сервером, но я бы порекомендовал использовать новый API плагина для любой части вашегоприложение, которое можно использовать повторно.Читайте о рельсах и двигателях.Создать ювелирное украшение с помощью Jeweler просто, а с помощью GitHub - с помощью заданий ювелирного рейка.Затем вы можете выполнить развертывание из тега github или из master, добавив источник gem и github в ваш Gemfile и связав его с установкой или обновлением.Недавно я перенес весь свой общий код приложения (блог, аутентификация и т. Д.) На движки Rails 3, и он отлично работает.И всякий раз, когда мне нужно повторно использовать этот код, я просто помещаю его в Gemfile нового приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...