Ruby on Rails на IIS?
Я пишу приложение Ruby on Rails, которое обычно работает на Heroku или Linux Box, но мне также нужно будет развернуть его на Windows Server.
Сервер - это 64-разрядный сервер Win2008 с установленным IIS 7.0, поэтому обычно я предпочитаю использовать IIS вместо настройки Apache рядом с ним.
Я просто не знаю, работает ли Ruby/Rails с IIS? Работают ли драгоценные камни? 64-разрядная проблема?
Я думаю об использовании Ruby 1.9.1 и Rails 2.3.
Ответы
Ответ 1
вы должны любить боль, потому что это развертывание будет больно. Я не знаю, является ли это решением для вас, но по моей старой работе мы развертывали веб-приложения на планшетах Windows (более 200 из них) и решили использовать виртуальную коробку и развернуть приложение в vm. Одно из наших старых приложений на планшетах для ПК, которые мы развернули в Windows без iis, просто использовали ruby и rubygems с mongrel как сервер приложений и mysql в качестве базы данных, но это было непривлекательно.
Ответ 2
Чтобы установить Ruby on Rails для 64-разрядного сервера Windows Server 2008 IIS 7, используйте Helicon Zoo
Ответ 3
Установщик Microsoft Web Platform делает все это на удивление просто! Подробнее см. http://www.helicontech.com/articles/ruby-on-rails-on-windows-in-production/.
Ответ 4
Существует способ запускать RoR на IIS8 через HttpPlatformHandler, описанный Скоттом Хансельманом в его сообщении: Объявление: запуск Ruby on Rails на IIS8 (или что-то еще, действительно) с новым HttpPlatformHandler
Ответ 5
Вы можете развернуть Rails в IIS, это очень сложно, и документации не так много. Вам понадобится специальная реализация Fast-CGI:
http://roriis.codeplex.com/
Также информация здесь:
http://mvolo.com/blogs/serverside/archive/2007/02/18/10-steps-to-get-Ruby-on-Rails-running-on-Windows-with-IIS-FastCGI.aspx
Rails под Apache в Windows немного проще, но самым большим недостатком развертывания Windows является то, что вы не можете использовать Capistrano для автоматизации развертываний. Драгоценные камни работают в Windows. Весь мой опыт - 32 бит, может быть 64-битный связанный сбой, но я сомневаюсь.
Ответ 6
Для работы в Windows с RoR я делаю это:
1. Install Ruby and RoR
2. Install NginX (balancing for each thin server launched)
3. Install Thin Server
4. Create a service (on Ruby code) that run each thin server process with each affinity process (cpu0/cpu1...) for example if have a DualCore CPU it will launch 2 Thin Server (different port between those) and set affinity for each one (using PID).
5. Set a windows user with permission to do run that service (like a IIS pool and isolated process concept)
Мое приложение работает более одного года и не имеет проблем с этим, и я счастлив.