Как развернуть приложения Rails 3 в Windows? - PullRequest
7 голосов
/ 11 марта 2011

Я искал способ надежного развертывания приложения Rails 3 в Windows. Я очень шокирован, что кажется, что в настоящее время нет никакого способа сделать это. Решение Apache + несколько сервисов Mongrel в настоящее время не работает, потому что Mongrel не может работать в режиме демона, поэтому я не могу установить его как mongrel_service.

Требования, которые я предполагаю, должны быть:

  • Веб-сервер, совместимый с Rails 3.
  • Должно быть в состоянии работать как служба Windows, демонизировано.
  • Должна быть возможность автоматического перезапуска в случае, если что-то пойдет не так.
  • Должно быть качество продукции: нет утечек памяти и т. Д.
  • Должен быть в состоянии масштабировать и принимать несколько запросов одновременно.
  • Меньше хаков возможно.

Я узнал эти вещи:

  • Mongrel не готов к работе на Rails 3 (1.2.0pre), у меня довольно быстро происходят утечки памяти из окна консоли. Приложение просто выходит.
  • Mongrel не работает в режиме демона (-d) с Rails 3.
  • Поэтому Mongrel не может быть установлен как сервис.
  • Phusion Passenger недоступен в Windows (будет лучшим решением).

Вот возможные решения, которые я придумал:

  • Получите коробку Linux, установите Apache + Phusion Passenger и катитесь.
  • Используя тонкий , однако, автор говорит, что тонкий процесс не «защищен».
  • Используя Ngnix , однако, автор говорит, что он просто запустил приложение по умолчанию, а не приложение полного запуска.
  • Использование Ngnix . Я думаю, что это решение страдает той же проблемой, что и выше.
  • Используя виртуализацию Linux, но я должен решить такие проблемы, как автозапуск и т. Д.
  • Запускать на JRuby в Tomcat.

Это может быть удобный инструмент: http://projectkenai.com/projects/winsw

Надеюсь, мы сможем найти реальное решение этой проблемы.


Обновление:

Я согласен, что JRuby + контейнер j2ee - лучшая ставка. Некоторые проблемы должны быть решены, например, гемы с расширениями и т. Д. Здесь есть много ценных идей: http://rails -nutshell.labs.oreilly.com / ch14.html # production_r259035_id35801805

Ответы [ 3 ]

6 голосов
/ 23 сентября 2011

Это настройка, которую я сейчас использую:

  • Windows server 2008
  • Apache 2.2
  • Тонкий сервер
  • Ruby 1.9.2
  • Rails 3.0.9

Установка этих аспектов описана в этом замечательном руководстве " Как установить и настроить Ruby on Rails с Windows Server 2008 EE ",Я проигнорировал биты LDAP и ActiveDirectory, но там обсуждается хороший обходной путь для установки Thin-сервера, поскольку gem 'thin' обычно ломается в Windows.

Для производства я настроил MySQL Server 5.5 для размещения своей базы данных.Адаптер mysql2 требуется для Rails 3, но еще не поддерживается в моей среде Windows.Адаптер mysql также выдаст ошибку на Rails 3, но в качестве обходного пути вы можете заставить его работать, установив более старую версию libmysql.dll .Вам просто нужно поместить его в каталог Ruby192 / bin.

После установки соответствующего адаптера и сервера mysql вам потребуется создать базу данных:

>> mysql -u root -p  
[enter root pw]  
create database production;  
quit;  

(вам может понадобитьсячтобы добавить установку MySQL к вашему пути, если «mysql» не может быть найден.)

Наконец, установите конфигурацию базы данных, найденную в your_rails_app / config / database:

# MySQL Production Database
production:
  adapter: mysql
  database: production
  pool: 5
  timeout: 5000
  encoding: utf8
  password: [your_root_password]
  host: localhost

Остальное, включаяНастройка прокси и запуск в качестве службы Windows описаны в разделе " Как установить и настроить Ruby on Rails с Windows Server 2008 EE ".Чтобы убедиться, что базовая настройка Thin работает правильно:

thin start -p 3000 -e production

Это должно запустить ваш сервер на порту 3000 в производственном режиме с использованием базы данных MySQL.Единственное, чего здесь не хватает - это балансировки нагрузки, на которую я надеюсь вскоре найти ответ!

2 голосов
/ 18 марта 2011

Лично я думаю, что JRuby + Tomcat Avenue будет вашим лучшим выбором, просто потому что Tomcat проверен на Windows, и он вместе с JRuby довольно стабилен.Моей первой мыслью была также Пассажир, и грустно, что она до сих пор не портирована.

0 голосов
/ 21 марта 2014

EngineYard достаточно просто развернуть приложение rails из среды Windows, просто установите свой gem и измените одну или две вещи в своем gemfile.lock хорошая ссылка https://support.cloud.engineyard.com/entries/20996706-Deploy-from-Windows

они дают вам 500 бесплатных часова также при начале работы

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