#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 и т. Д.), Но меня беспокоит скорость и загрузка сервера (поскольку наше приложение уже загружено большим количеством пользователей).).
-
Как люди развертывают приложения rails для производственного использования при аналогичной настройке?
-
Как я мог настроить 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) может значительно повысить эффективность вашего приложения, если оно хорошо реализовано.