Rails в производстве — CentOS, Apache, MySQL

#ruby-on-rails #ruby #ruby-on-rails-3 #ruby-on-rails-3.1

#ruby-on-rails #ruby #ruby-on-rails-3 #ruby-on-rails-3.1

Вопрос:

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

На наших серверах в настоящее время:

CentOS Apache 2.x MySQL

Я читал о продуктах, которые помогают в настройке с этим стеком (Passenger и т. Д.), Но меня беспокоит скорость и загрузка сервера (поскольку наше приложение уже загружено большим количеством пользователей).).

  1. Как люди развертывают приложения rails для производственного использования при аналогичной настройке?

  2. Как я мог настроить rails на использование этого существующего стека, не добавляя ничего другого (или добавляя к нему только компоненты производственного масштаба)? — Что-то вроде LAMR (Linux Apache MySQL Rails)

ПРИМЕЧАНИЕ: установка по-прежнему будет обслуживать существующие проекты, созданные с использованием PHP, поэтому установка не может реально нарушить какие-либо существующие функции стека

Ответ №1:

Passenger — хороший вариант, и он уже используется многими сайтами с высоким трафиком в производстве.

Комментарии:

1. Возможно ли не использовать Passenger и развернуть только с Apache и MySQL?

Ответ №2:

объявление. 1. Как вы уже сказали, Passenger REE является популярным выбором.

объявление. 2. Вы можете попробовать запустить его с помощью легкого сервера приложений, такого как thin или unicorn. http://articles.slicehost.com/2009/4/17/centos-apache-rails-and-thin

Ответ №3:

Возможно ли не использовать Passenger и развернуть только с Apache и MySQL?

Я не верю, что вы можете запускать rails только с apache и mysql таким образом. Подобно тому, как mod_php заботится об обработке PHP для Apache, модуль, подобный passenger (www.modrails.com ) заботится об обработке приложения Rails для вас.

Вы можете использовать PassengerEnabled off настройку (подробнее) в vhost, чтобы отключить passenger для приложений PHP. (хотя ваше php-приложение будет работать нормально, если оно не будет размещено в вашем приложении rails без этой настройки.)

О настройках масштаба производства. Я полагаю, что Twitter использовал apache в качестве балансировщика нагрузки для ряда http-серверов mongrel. (смотрите Эту статью для получения дополнительной информации). Как вы можете видеть, кэширование (например, memcached) может значительно повысить эффективность вашего приложения, если оно хорошо реализовано.