оптимальная установка ОС, сервера и т. д. для рабочей среды рельсов - PullRequest
1 голос
/ 10 ноября 2010

Какова оптимальная установка ОС, сервера и т. Д. Для рабочей среды рельсов?

Ваши рекомендации?

спасибо

1 Ответ

4 голосов
/ 10 ноября 2010

Существует множество способов настройки сервера Rails. Я не знаю, есть ли такая вещь, как «идеальный» конфиг. Я расскажу вам, как я настроил свой сервер и почему.

Операционная система : Linux , любой дистрибутив.

Это единственная серверная платформа, которая имеет какой-либо смысл. Сообщество Ruby сконцентрировано на Linux, но BSD также был бы идеальным выбором. Мне наиболее комфортно с Linux.

OSX - отличная платформа для разработки, но дополнительные затраты на самом деле ничего не покупают на стороне сервера, которую вы не можете получить в Linux. И Apple постепенно сворачивает платформу Xserve, так что, скорее всего, там нет будущего. Даже не думайте об использовании Windows .

Веб-сервер : Apache + Phusion Passenger

Я рекомендую Apache, потому что он везде . Все это знают. Получить поддержку очень просто.

Phusion Passenger - вероятно, самый простой сервер приложений для запуска. Вот пример конфигурации VirtualHost:

<VirtualHost x.x.x.x:80>
    ServerName xxxx.com
    DocumentRoot /var/www/xxxx/current/public
    PassengerHighPerformance on
    <Directory "/var/www/xxxx/current/public">
        AllowOverride all
        Options -MultiViews
    </Directory>
    AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/json
    AddOutputFilterByType DEFLATE image/jpeg, image/png, image/gif
</VirtualHost>

Вот и все. (И большая часть этого не является строго необходимой)

Ruby интерпретатор : Ruby Enterprise Edition

Я использую это вместо vanilla MRI, потому что это немного более эффективно использует память, что имеет большое значение для сервера. Он также предназначен для интеграции с пассажиром.

Одним из недостатков REE является то, что он основан на 1.8.7. Возможно, вы захотите использовать 1.9.2 вместо этого, потому что это значительно повышает производительность.

Управление драгоценными камнями : RVM

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

Система развертывания : Capistrano

Если вы не используете Capistrano, вам следует. Это позволит вам сэкономить много времени при развертывании продукции. Это также сделает откат к предыдущей версии простым, если есть проблема.

У вас также должен быть установлен ExceptionNotifier . Если на вашем производственном сервере есть исключение, вы должны знать об этом.

Я также настоятельно рекомендую проверить NewRelic RPM для профилирования. Даже бесплатная версия предоставляет полезную информацию.

...