Я пытаюсь начать писать некоторые приложения Ruby on Rails и успешно работал с Mongrel, но хочу ли я развернуть свои приложения на моем экземпляре Apache 2.2 в Windows? Все найденные мной руководства кажутся устаревшими и предназначены для более старых версий Apache / Rails.
Кто-нибудь знает хорошее текущее руководство по настройке Apache 2.2 для приложений Ruby on Rails?
Ответ 1 · рейтинг 13 · Dave Nolan
РЕДАКТИРОВАТЬ: По крайней мере, пока не будет Phusion Passenger для Win, Apache + Mongrel - это то, что вам нужно. Вы можете использовать Apache + FastCGI без Mongrel, но при реальных нагрузках вы получите (больше) зомби-процессов и (больше) утечек памяти.
Вы также можете изучить проксирование на Thin таким же образом, как описано ниже. Однако у меня были некоторые нестабильности с Thin on Win, хотя это заметно быстрее. AB (Apache Benchmark) - ваш друг!
Настройка Apache + Mongrel в Windows не сильно отличается от * nix.
По сути, вам нужно проксировать запросы, поступающие в Apache, в Mongrel. Все сводится к следующему:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
<VirtualHost localhost:80>
ServerName www.myapp.comm
DocumentRoot "C:/web/myapp/public"
ProxyPass / http://www.myapp.com:3000/
ProxyPassReverse / http://www.myapp.com:3000/
ProxyPreserveHost On
</VirtualHost>
Вставьте это в свой httpd.conf (или httpd-vhost.conf, если вы его включаете).
Предполагается, что вы собираетесь запустить mongrel на порту 3000, ваш корень Rails находится в C:\web\myapp, и вы получите доступ к приложению на www.myapp.com.
Чтобы запустить приложение rails в производственном режиме:
mongrel_rails start -p 3000 -e production
И вперед (на самом деле mongrel по умолчанию использует порт 3000, так что вы можете пропустить -p 3000, если хотите).
Основное отличие состоит в том, что вы не можете демонизировать mongrel в Windows (т.е. заставить его работать в фоновом режиме). Вместо этого вы можете установить его как службу, используя гем mongrel_service.
Кроме того, управлять кластером сложнее, и вы не сможете использовать Capistrano. Дайте мне знать, если вам нужна дополнительная информация.
Ответ 2 · рейтинг 3 · danny
Я новичок в RoR и пробовал то же самое на Windows Server 2008, вот несколько дополнительных замечаний о том, как использовать mongrel как службу:
если при установке mongrel_service возникают ошибки компиляции:
gem install mongrel_service
попробуйте вместо этого использовать двоичный файл, указав свою платформу:
gem install mongrel_service --platform x86-mswin32
Кроме того, чтобы фактически установить службу, вам необходимо запустить эту команду в каталоге приложения вашего RoR:
mongrel_rails service::install --name MyApp -e production -p 3001 -a 0.0.0.0
(или удалить:
mongrel_rails service::remove --name MyApp
)
После этого вы сможете запускать / останавливать приложение "MyApp" в панели управления службами Windows.
Надеюсь, это кому-то поможет.